<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<meta name="theme-color" content="#222"><meta name="generator" content="Hexo 6.3.0">

  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">



<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" integrity="sha256-CTSx/A06dm1B063156EVh15m6Y67pAjZZaQc89LLSrU=" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.1.1/animate.min.css" integrity="sha256-PR7ttpcvz8qrF57fur/yAx1qXMFJeJFiA6pSzWi0OIE=" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancyapps-ui/5.0.24/fancybox/fancybox.css" integrity="sha256-vQkngPS8jiHHH0I6ABTZroZk8NPZ7b+MUReOFE9UsXQ=" crossorigin="anonymous">

<script class="next-config" data-name="main" type="application/json">{"hostname":"rjyblog.gitee.io","root":"/","images":"/images","scheme":"Pisces","darkmode":false,"version":"8.18.2","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12},"copycode":{"enable":true,"style":null},"fold":{"enable":false,"height":500},"bookmark":{"enable":false,"color":"#222","save":"auto"},"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"stickytabs":false,"motion":{"enable":true,"async":false,"transition":{"menu_item":"fadeInDown","post_block":"fadeIn","post_header":"fadeInDown","post_body":"fadeInDown","coll_header":"fadeInLeft","sidebar":"fadeInUp"}},"prism":false,"i18n":{"placeholder":"搜索...","empty":"没有找到任何搜索结果：${query}","hits_time":"找到 ${hits} 个搜索结果（用时 ${time} 毫秒）","hits":"找到 ${hits} 个搜索结果"},"path":"/search.xml","localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false}}</script><script src="/js/config.js"></script>

    <meta name="description" content="先看下app端的类图结构： WindowManagerWindowActivityPhoneWindowWindowManagerImpl&amp;#171;Singleton&amp;#187;WindowManagerGlobalViewParentViewRootImplIWindowSessionIWindow.StubViewRootImpl.WIWindowIWindowManagerSurfaceS">
<meta property="og:type" content="article">
<meta property="og:title" content="Android WindowManager与Window">
<meta property="og:url" content="https://rjyblog.gitee.io/posts/90f60c72.html">
<meta property="og:site_name" content="任建勇的博客">
<meta property="og:description" content="先看下app端的类图结构： WindowManagerWindowActivityPhoneWindowWindowManagerImpl&amp;#171;Singleton&amp;#187;WindowManagerGlobalViewParentViewRootImplIWindowSessionIWindow.StubViewRootImpl.WIWindowIWindowManagerSurfaceS">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2023-10-20T03:11:56.000Z">
<meta property="article:modified_time" content="2024-01-06T03:39:25.277Z">
<meta property="article:author" content="Jason">
<meta property="article:tag" content="Android">
<meta name="twitter:card" content="summary">


<link rel="canonical" href="https://rjyblog.gitee.io/posts/90f60c72.html">



<script class="next-config" data-name="page" type="application/json">{"sidebar":"","isHome":false,"isPost":true,"lang":"zh-CN","comments":true,"permalink":"https://rjyblog.gitee.io/posts/90f60c72.html","path":"posts/90f60c72.html","title":"Android WindowManager与Window"}</script>

<script class="next-config" data-name="calendar" type="application/json">""</script>
<title>Android WindowManager与Window | 任建勇的博客</title>
  








  <noscript>
    <link rel="stylesheet" href="/css/noscript.css">
  </noscript>
</head>

<body itemscope itemtype="http://schema.org/WebPage" class="use-motion">
  <div class="headband"></div>

  <main class="main">
    <div class="column">
      <header class="header" itemscope itemtype="http://schema.org/WPHeader"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏" role="button">
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
        <span class="toggle-line"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <i class="logo-line"></i>
      <p class="site-title">任建勇的博客</p>
      <i class="logo-line"></i>
    </a>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger" aria-label="搜索" role="button">
        <i class="fa fa-search fa-fw fa-lg"></i>
    </div>
  </div>
</div>



<nav class="site-nav">
  <ul class="main-menu menu"><li class="menu-item menu-item-home"><a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a></li><li class="menu-item menu-item-tags"><a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a></li><li class="menu-item menu-item-categories"><a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a></li>
      <li class="menu-item menu-item-search">
        <a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索
        </a>
      </li>
  </ul>
</nav>



  <div class="search-pop-overlay">
    <div class="popup search-popup"><div class="search-header">
  <span class="search-icon">
    <i class="fa fa-search"></i>
  </span>
  <div class="search-input-container">
    <input autocomplete="off" autocapitalize="off" maxlength="80"
           placeholder="搜索..." spellcheck="false"
           type="search" class="search-input">
  </div>
  <span class="popup-btn-close" role="button">
    <i class="fa fa-times-circle"></i>
  </span>
</div>
<div class="search-result-container no-result">
  <div class="search-result-icon">
    <i class="fa fa-spinner fa-pulse fa-5x"></i>
  </div>
</div>

    </div>
  </div>

</header>
        
  
  <aside class="sidebar">

    <div class="sidebar-inner sidebar-nav-active sidebar-toc-active">
      <ul class="sidebar-nav">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <div class="sidebar-panel-container">
        <!--noindex-->
        <div class="post-toc-wrap sidebar-panel">
            <div class="post-toc animated"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#IWindowManager"><span class="nav-text">IWindowManager</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#IWindowSession"><span class="nav-text">IWindowSession</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#addWindow%E6%8A%8AIWindow%E5%8A%A0%E5%85%A5%E5%88%B0WMS"><span class="nav-text">addWindow把IWindow加入到WMS</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#relayoutWindow"><span class="nav-text">relayoutWindow</span></a></li></ol></div>
        </div>
        <!--/noindex-->

        <div class="site-overview-wrap sidebar-panel">
          <div class="site-author animated" itemprop="author" itemscope itemtype="http://schema.org/Person">
    <img class="site-author-image" itemprop="image" alt="Jason"
      src="/images/avatar.png">
  <p class="site-author-name" itemprop="name">Jason</p>
  <div class="site-description" itemprop="description"></div>
</div>
<div class="site-state-wrap animated">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
        <a href="/archives/">
          <span class="site-state-item-count">66</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
          <a href="/categories/">
        <span class="site-state-item-count">13</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
          <a href="/tags/">
        <span class="site-state-item-count">23</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>

        </div>
      </div>
    </div>

    
  </aside>


    </div>

    <div class="main-inner post posts-expand">


  


<div class="post-block">
  
  

  <article itemscope itemtype="http://schema.org/Article" class="post-content" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="https://rjyblog.gitee.io/posts/90f60c72.html">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.png">
      <meta itemprop="name" content="Jason">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="任建勇的博客">
      <meta itemprop="description" content="">
    </span>

    <span hidden itemprop="post" itemscope itemtype="http://schema.org/CreativeWork">
      <meta itemprop="name" content="Android WindowManager与Window | 任建勇的博客">
      <meta itemprop="description" content="">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          Android WindowManager与Window
        </h1>

        <div class="post-meta-container">
          <div class="post-meta">
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-calendar"></i>
      </span>
      <span class="post-meta-item-text">发表于</span>

      <time title="创建时间：2023-10-20 11:11:56" itemprop="dateCreated datePublished" datetime="2023-10-20T11:11:56+08:00">2023-10-20</time>
    </span>
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-calendar-check"></i>
      </span>
      <span class="post-meta-item-text">更新于</span>
      <time title="修改时间：2024-01-06 11:39:25" itemprop="dateModified" datetime="2024-01-06T11:39:25+08:00">2024-01-06</time>
    </span>
    <span class="post-meta-item">
      <span class="post-meta-item-icon">
        <i class="far fa-folder"></i>
      </span>
      <span class="post-meta-item-text">分类于</span>
        <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
          <a href="/categories/Android/" itemprop="url" rel="index"><span itemprop="name">Android</span></a>
        </span>
    </span>

  
</div>

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody"><p>先看下app端的类图结构：</p>
<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="502px" preserveAspectRatio="none" style="width:831px;height:502px;background:#FFFFFF;" version="1.1" viewBox="0 0 831 502" width="831px" zoomAndPan="magnify"><defs/><g><!--class WindowManager--><g id="elem_WindowManager"><rect codeLine="2" fill="#F1F1F1" height="48" id="WindowManager" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="151" x="169" y="115"/><ellipse cx="184" cy="131" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M184.9531,127.7813 L186.6719,127.7813 C187.0625,127.7813 187.25,127.75 187.375,127.6719 C187.6406,127.5156 187.7813,127.2344 187.7813,126.9375 C187.7813,126.6719 187.6719,126.4063 187.4375,126.2344 C187.2656,126.125 187.125,126.0938 186.6719,126.0938 L181.5313,126.0938 C181.0938,126.0938 180.9688,126.1094 180.8125,126.2031 C180.5625,126.3594 180.4063,126.6563 180.4063,126.9375 C180.4063,127.2188 180.5469,127.4688 180.7656,127.6406 C180.9219,127.75 181.1094,127.7813 181.5313,127.7813 L183.25,127.7813 L183.25,134.2969 L181.5313,134.2969 C181.0938,134.2969 180.9688,134.3125 180.8125,134.4219 C180.5625,134.5781 180.4063,134.8594 180.4063,135.1563 C180.4063,135.4063 180.5469,135.6719 180.7656,135.8281 C180.9219,135.9531 181.125,136 181.5313,136 L186.6719,136 C187.4219,136 187.7813,135.7188 187.7813,135.1563 C187.7813,134.875 187.6719,134.625 187.4375,134.4531 C187.2656,134.3281 187.125,134.2969 186.6719,134.2969 L184.9531,134.2969 L184.9531,127.7813 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="119" x="198" y="135.8467">WindowManager</text><line style="stroke:#181818;stroke-width:0.5;" x1="170" x2="319" y1="147" y2="147"/><line style="stroke:#181818;stroke-width:0.5;" x1="170" x2="319" y1="155" y2="155"/></g><!--class Window--><g id="elem_Window"><rect codeLine="3" fill="#F1F1F1" height="48" id="Window" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="88" x="288.5" y="7"/><ellipse cx="303.5" cy="23" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M305.5781,24.8125 L305.9688,25.7969 L305.5781,25.7969 C305.125,25.7969 305.0156,25.8125 304.8594,25.9219 C304.6094,26.0781 304.4531,26.3594 304.4531,26.6563 C304.4531,26.9219 304.5938,27.1719 304.8125,27.3281 C304.9531,27.4531 305.1563,27.5 305.5781,27.5 L307.9375,27.5 C308.2969,27.5 308.5156,27.4688 308.6563,27.375 C308.9063,27.2344 309.0625,26.9375 309.0625,26.6563 C309.0625,26.375 308.9219,26.125 308.7031,25.9688 C308.5313,25.8281 308.375,25.7969 307.9063,25.7969 L304.5156,17.5938 L300.8438,17.5938 C300.3906,17.5938 300.2656,17.6094 300.1094,17.7031 C299.8594,17.875 299.7031,18.1563 299.7031,18.4375 C299.7031,18.7188 299.8438,18.9688 300.0625,19.1406 C300.2344,19.25 300.4063,19.2813 300.8438,19.2813 L301.9219,19.2813 L299.2813,25.7969 C298.8594,25.7969 298.7031,25.8125 298.5469,25.9219 C298.2969,26.0781 298.1406,26.3594 298.1406,26.6563 C298.1406,27.2188 298.5156,27.5 299.2656,27.5 L301.5313,27.5 C301.8906,27.5 302.1094,27.4688 302.2344,27.375 C302.5,27.2344 302.6406,26.9375 302.6406,26.6563 C302.6406,26.375 302.5156,26.125 302.2969,25.9531 C302.125,25.8281 301.9844,25.7969 301.5313,25.7969 L301.1406,25.7969 L301.5313,24.8125 L305.5781,24.8125 Z M304.875,23.1094 L302.2031,23.1094 L303.5469,19.8438 L304.875,23.1094 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="56" x="317.5" y="27.8467">Window</text><line style="stroke:#181818;stroke-width:0.5;" x1="289.5" x2="375.5" y1="39" y2="39"/><line style="stroke:#181818;stroke-width:0.5;" x1="289.5" x2="375.5" y1="47" y2="47"/></g><!--class Activity--><g id="elem_Activity"><rect fill="#F1F1F1" height="48" id="Activity" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="88" x="165.5" y="7"/><ellipse cx="180.5" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M182.8438,18.6719 C181.9063,18.2344 181.3125,18.0938 180.4375,18.0938 C177.8125,18.0938 175.8125,20.1719 175.8125,22.8906 L175.8125,24.0156 C175.8125,26.5938 177.9219,28.4844 180.8125,28.4844 C182.0313,28.4844 183.1875,28.1875 183.9375,27.6406 C184.5156,27.2344 184.8438,26.7813 184.8438,26.3906 C184.8438,25.9375 184.4531,25.5469 183.9844,25.5469 C183.7656,25.5469 183.5625,25.625 183.375,25.8125 C182.9219,26.2969 182.9219,26.2969 182.7344,26.3906 C182.3125,26.6563 181.625,26.7813 180.8594,26.7813 C178.8125,26.7813 177.5156,25.6875 177.5156,23.9844 L177.5156,22.8906 C177.5156,21.1094 178.7656,19.7969 180.5,19.7969 C181.0781,19.7969 181.6875,19.9531 182.1563,20.2031 C182.6406,20.4844 182.8125,20.7031 182.9063,21.1094 C182.9688,21.5156 183,21.6406 183.1406,21.7656 C183.2813,21.9063 183.5156,22.0156 183.7344,22.0156 C184,22.0156 184.2656,21.875 184.4375,21.6563 C184.5469,21.5 184.5781,21.3125 184.5781,20.8906 L184.5781,19.4688 C184.5781,19.0313 184.5625,18.9063 184.4688,18.75 C184.3125,18.4844 184.0313,18.3438 183.7344,18.3438 C183.4375,18.3438 183.2344,18.4375 183.0156,18.75 L182.8438,18.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="56" x="194.5" y="27.8467">Activity</text><line style="stroke:#181818;stroke-width:0.5;" x1="166.5" x2="252.5" y1="39" y2="39"/><line style="stroke:#181818;stroke-width:0.5;" x1="166.5" x2="252.5" y1="47" y2="47"/></g><!--class PhoneWindow--><g id="elem_PhoneWindow"><rect fill="#F1F1F1" height="48" id="PhoneWindow" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="133" x="355" y="115"/><ellipse cx="370" cy="131" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M372.3438,126.6719 C371.4063,126.2344 370.8125,126.0938 369.9375,126.0938 C367.3125,126.0938 365.3125,128.1719 365.3125,130.8906 L365.3125,132.0156 C365.3125,134.5938 367.4219,136.4844 370.3125,136.4844 C371.5313,136.4844 372.6875,136.1875 373.4375,135.6406 C374.0156,135.2344 374.3438,134.7813 374.3438,134.3906 C374.3438,133.9375 373.9531,133.5469 373.4844,133.5469 C373.2656,133.5469 373.0625,133.625 372.875,133.8125 C372.4219,134.2969 372.4219,134.2969 372.2344,134.3906 C371.8125,134.6563 371.125,134.7813 370.3594,134.7813 C368.3125,134.7813 367.0156,133.6875 367.0156,131.9844 L367.0156,130.8906 C367.0156,129.1094 368.2656,127.7969 370,127.7969 C370.5781,127.7969 371.1875,127.9531 371.6563,128.2031 C372.1406,128.4844 372.3125,128.7031 372.4063,129.1094 C372.4688,129.5156 372.5,129.6406 372.6406,129.7656 C372.7813,129.9063 373.0156,130.0156 373.2344,130.0156 C373.5,130.0156 373.7656,129.875 373.9375,129.6563 C374.0469,129.5 374.0781,129.3125 374.0781,128.8906 L374.0781,127.4688 C374.0781,127.0313 374.0625,126.9063 373.9688,126.75 C373.8125,126.4844 373.5313,126.3438 373.2344,126.3438 C372.9375,126.3438 372.7344,126.4375 372.5156,126.75 L372.3438,126.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101" x="384" y="135.8467">PhoneWindow</text><line style="stroke:#181818;stroke-width:0.5;" x1="356" x2="487" y1="147" y2="147"/><line style="stroke:#181818;stroke-width:0.5;" x1="356" x2="487" y1="155" y2="155"/></g><!--class WindowManagerImpl--><g id="elem_WindowManagerImpl"><rect fill="#F1F1F1" height="48" id="WindowManagerImpl" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="181" x="154" y="223"/><ellipse cx="169" cy="239" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M171.3438,234.6719 C170.4063,234.2344 169.8125,234.0938 168.9375,234.0938 C166.3125,234.0938 164.3125,236.1719 164.3125,238.8906 L164.3125,240.0156 C164.3125,242.5938 166.4219,244.4844 169.3125,244.4844 C170.5313,244.4844 171.6875,244.1875 172.4375,243.6406 C173.0156,243.2344 173.3438,242.7813 173.3438,242.3906 C173.3438,241.9375 172.9531,241.5469 172.4844,241.5469 C172.2656,241.5469 172.0625,241.625 171.875,241.8125 C171.4219,242.2969 171.4219,242.2969 171.2344,242.3906 C170.8125,242.6563 170.125,242.7813 169.3594,242.7813 C167.3125,242.7813 166.0156,241.6875 166.0156,239.9844 L166.0156,238.8906 C166.0156,237.1094 167.2656,235.7969 169,235.7969 C169.5781,235.7969 170.1875,235.9531 170.6563,236.2031 C171.1406,236.4844 171.3125,236.7031 171.4063,237.1094 C171.4688,237.5156 171.5,237.6406 171.6406,237.7656 C171.7813,237.9063 172.0156,238.0156 172.2344,238.0156 C172.5,238.0156 172.7656,237.875 172.9375,237.6563 C173.0469,237.5 173.0781,237.3125 173.0781,236.8906 L173.0781,235.4688 C173.0781,235.0313 173.0625,234.9063 172.9688,234.75 C172.8125,234.4844 172.5313,234.3438 172.2344,234.3438 C171.9375,234.3438 171.7344,234.4375 171.5156,234.75 L171.3438,234.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="149" x="183" y="243.8467">WindowManagerImpl</text><line style="stroke:#181818;stroke-width:0.5;" x1="155" x2="334" y1="255" y2="255"/><line style="stroke:#181818;stroke-width:0.5;" x1="155" x2="334" y1="263" y2="263"/></g><!--class WindowManagerGlobal--><g id="elem_WindowManagerGlobal"><rect codeLine="8" fill="#F1F1F1" height="56.2656" id="WindowManagerGlobal" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="195" x="147" y="331"/><ellipse cx="162" cy="351.1328" fill="#FF7700" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M165.7813,347.1016 C165.7813,346.6641 165.7656,346.5234 165.6719,346.3672 C165.5313,346.1328 165.25,345.9766 164.9531,345.9766 C164.6094,345.9766 164.4688,346.1172 164.2969,346.5391 C163.7031,346.1641 162.9531,345.9766 162.0781,345.9766 C159.9688,345.9766 158.3906,347.2734 158.3906,348.9922 C158.3906,349.9609 158.9219,350.8672 159.7813,351.3516 C160.3281,351.6641 160.875,351.8359 161.9844,352.0234 C163.1406,352.2266 163.4063,352.2891 163.7656,352.4766 C164.1406,352.6797 164.375,353.0234 164.375,353.3828 C164.375,354.1172 163.3906,354.6641 162.1406,354.6641 C161.0156,354.6641 159.9375,354.1797 159.7656,353.5703 C159.6406,353.1016 159.6406,353.1016 159.5156,352.9922 C159.3594,352.8359 159.1406,352.7422 158.9063,352.7422 C158.625,352.7422 158.375,352.8672 158.2031,353.0859 C158.0938,353.2578 158.0469,353.4453 158.0469,353.8672 L158.0469,354.9922 C158.0469,355.7578 158.3281,356.1172 158.9219,356.1172 C159.1875,356.1172 159.3125,356.0547 159.5938,355.7109 C160.4375,356.1484 161.3281,356.3672 162.25,356.3672 C164.5781,356.3672 166.1406,355.1797 166.1406,353.4141 C166.1406,352.5234 165.8281,351.8359 165.1406,351.2891 C164.6094,350.8672 163.9688,350.6172 162.4844,350.3516 C161.2188,350.1172 161.125,350.0859 160.7969,349.9141 C160.4219,349.7266 160.1563,349.3359 160.1563,348.9766 C160.1563,348.2422 161.0156,347.6797 162.0781,347.6797 C163.1406,347.6797 163.9531,348.1484 164.1094,348.8203 C164.2188,349.3672 164.2188,349.3672 164.3438,349.5078 C164.4844,349.6328 164.7188,349.7422 164.9531,349.7422 C165.2188,349.7422 165.4688,349.6016 165.6406,349.3828 C165.75,349.2109 165.7813,349.0703 165.7813,348.6016 L165.7813,347.1016 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="71" x="222" y="347.1387">&#171;Singleton&#187;</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="163" x="176" y="362.9639">WindowManagerGlobal</text><line style="stroke:#181818;stroke-width:0.5;" x1="148" x2="341" y1="371.2656" y2="371.2656"/><line style="stroke:#181818;stroke-width:0.5;" x1="148" x2="341" y1="379.2656" y2="379.2656"/></g><!--class ViewParent--><g id="elem_ViewParent"><rect codeLine="10" fill="#F1F1F1" height="48" id="ViewParent" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="112" x="387.5" y="223"/><ellipse cx="402.5" cy="239" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M403.4531,235.7813 L405.1719,235.7813 C405.5625,235.7813 405.75,235.75 405.875,235.6719 C406.1406,235.5156 406.2813,235.2344 406.2813,234.9375 C406.2813,234.6719 406.1719,234.4063 405.9375,234.2344 C405.7656,234.125 405.625,234.0938 405.1719,234.0938 L400.0313,234.0938 C399.5938,234.0938 399.4688,234.1094 399.3125,234.2031 C399.0625,234.3594 398.9063,234.6563 398.9063,234.9375 C398.9063,235.2188 399.0469,235.4688 399.2656,235.6406 C399.4219,235.75 399.6094,235.7813 400.0313,235.7813 L401.75,235.7813 L401.75,242.2969 L400.0313,242.2969 C399.5938,242.2969 399.4688,242.3125 399.3125,242.4219 C399.0625,242.5781 398.9063,242.8594 398.9063,243.1563 C398.9063,243.4063 399.0469,243.6719 399.2656,243.8281 C399.4219,243.9531 399.625,244 400.0313,244 L405.1719,244 C405.9219,244 406.2813,243.7188 406.2813,243.1563 C406.2813,242.875 406.1719,242.625 405.9375,242.4531 C405.7656,242.3281 405.625,242.2969 405.1719,242.2969 L403.4531,242.2969 L403.4531,235.7813 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="80" x="416.5" y="243.8467">ViewParent</text><line style="stroke:#181818;stroke-width:0.5;" x1="388.5" x2="498.5" y1="255" y2="255"/><line style="stroke:#181818;stroke-width:0.5;" x1="388.5" x2="498.5" y1="263" y2="263"/></g><!--class ViewRootImpl--><g id="elem_ViewRootImpl"><rect fill="#F1F1F1" height="48" id="ViewRootImpl" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="133" x="377" y="335"/><ellipse cx="392" cy="351" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M394.3438,346.6719 C393.4063,346.2344 392.8125,346.0938 391.9375,346.0938 C389.3125,346.0938 387.3125,348.1719 387.3125,350.8906 L387.3125,352.0156 C387.3125,354.5938 389.4219,356.4844 392.3125,356.4844 C393.5313,356.4844 394.6875,356.1875 395.4375,355.6406 C396.0156,355.2344 396.3438,354.7813 396.3438,354.3906 C396.3438,353.9375 395.9531,353.5469 395.4844,353.5469 C395.2656,353.5469 395.0625,353.625 394.875,353.8125 C394.4219,354.2969 394.4219,354.2969 394.2344,354.3906 C393.8125,354.6563 393.125,354.7813 392.3594,354.7813 C390.3125,354.7813 389.0156,353.6875 389.0156,351.9844 L389.0156,350.8906 C389.0156,349.1094 390.2656,347.7969 392,347.7969 C392.5781,347.7969 393.1875,347.9531 393.6563,348.2031 C394.1406,348.4844 394.3125,348.7031 394.4063,349.1094 C394.4688,349.5156 394.5,349.6406 394.6406,349.7656 C394.7813,349.9063 395.0156,350.0156 395.2344,350.0156 C395.5,350.0156 395.7656,349.875 395.9375,349.6563 C396.0469,349.5 396.0781,349.3125 396.0781,348.8906 L396.0781,347.4688 C396.0781,347.0313 396.0625,346.9063 395.9688,346.75 C395.8125,346.4844 395.5313,346.3438 395.2344,346.3438 C394.9375,346.3438 394.7344,346.4375 394.5156,346.75 L394.3438,346.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101" x="406" y="355.8467">ViewRootImpl</text><line style="stroke:#181818;stroke-width:0.5;" x1="378" x2="509" y1="367" y2="367"/><line style="stroke:#181818;stroke-width:0.5;" x1="378" x2="509" y1="375" y2="375"/></g><!--class IWindowSession--><g id="elem_IWindowSession"><rect codeLine="12" fill="#F1F1F1" height="48" id="IWindowSession" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="146" x="195.5" y="447"/><ellipse cx="210.5" cy="463" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M211.4531,459.7813 L213.1719,459.7813 C213.5625,459.7813 213.75,459.75 213.875,459.6719 C214.1406,459.5156 214.2813,459.2344 214.2813,458.9375 C214.2813,458.6719 214.1719,458.4063 213.9375,458.2344 C213.7656,458.125 213.625,458.0938 213.1719,458.0938 L208.0313,458.0938 C207.5938,458.0938 207.4688,458.1094 207.3125,458.2031 C207.0625,458.3594 206.9063,458.6563 206.9063,458.9375 C206.9063,459.2188 207.0469,459.4688 207.2656,459.6406 C207.4219,459.75 207.6094,459.7813 208.0313,459.7813 L209.75,459.7813 L209.75,466.2969 L208.0313,466.2969 C207.5938,466.2969 207.4688,466.3125 207.3125,466.4219 C207.0625,466.5781 206.9063,466.8594 206.9063,467.1563 C206.9063,467.4063 207.0469,467.6719 207.2656,467.8281 C207.4219,467.9531 207.625,468 208.0313,468 L213.1719,468 C213.9219,468 214.2813,467.7188 214.2813,467.1563 C214.2813,466.875 214.1719,466.625 213.9375,466.4531 C213.7656,466.3281 213.625,466.2969 213.1719,466.2969 L211.4531,466.2969 L211.4531,459.7813 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="114" x="224.5" y="467.8467">IWindowSession</text><line style="stroke:#181818;stroke-width:0.5;" x1="196.5" x2="340.5" y1="479" y2="479"/><line style="stroke:#181818;stroke-width:0.5;" x1="196.5" x2="340.5" y1="487" y2="487"/></g><!--class IWindow_Stub--><g id="elem_IWindow_Stub"><rect codeLine="15" fill="#F1F1F1" height="48" id="IWindow_Stub" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="128" x="684.5" y="335"/><ellipse cx="699.5" cy="351" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M701.5781,352.8125 L701.9688,353.7969 L701.5781,353.7969 C701.125,353.7969 701.0156,353.8125 700.8594,353.9219 C700.6094,354.0781 700.4531,354.3594 700.4531,354.6563 C700.4531,354.9219 700.5938,355.1719 700.8125,355.3281 C700.9531,355.4531 701.1563,355.5 701.5781,355.5 L703.9375,355.5 C704.2969,355.5 704.5156,355.4688 704.6563,355.375 C704.9063,355.2344 705.0625,354.9375 705.0625,354.6563 C705.0625,354.375 704.9219,354.125 704.7031,353.9688 C704.5313,353.8281 704.375,353.7969 703.9063,353.7969 L700.5156,345.5938 L696.8438,345.5938 C696.3906,345.5938 696.2656,345.6094 696.1094,345.7031 C695.8594,345.875 695.7031,346.1563 695.7031,346.4375 C695.7031,346.7188 695.8438,346.9688 696.0625,347.1406 C696.2344,347.25 696.4063,347.2813 696.8438,347.2813 L697.9219,347.2813 L695.2813,353.7969 C694.8594,353.7969 694.7031,353.8125 694.5469,353.9219 C694.2969,354.0781 694.1406,354.3594 694.1406,354.6563 C694.1406,355.2188 694.5156,355.5 695.2656,355.5 L697.5313,355.5 C697.8906,355.5 698.1094,355.4688 698.2344,355.375 C698.5,355.2344 698.6406,354.9375 698.6406,354.6563 C698.6406,354.375 698.5156,354.125 698.2969,353.9531 C698.125,353.8281 697.9844,353.7969 697.5313,353.7969 L697.1406,353.7969 L697.5313,352.8125 L701.5781,352.8125 Z M700.875,351.1094 L698.2031,351.1094 L699.5469,347.8438 L700.875,351.1094 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="96" x="713.5" y="355.8467">IWindow.Stub</text><line style="stroke:#181818;stroke-width:0.5;" x1="685.5" x2="811.5" y1="367" y2="367"/><line style="stroke:#181818;stroke-width:0.5;" x1="685.5" x2="811.5" y1="375" y2="375"/></g><!--class w--><g id="elem_w"><rect codeLine="16" fill="#F1F1F1" height="48" id="w" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="152" x="672.5" y="447"/><ellipse cx="687.5" cy="463" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M689.8438,458.6719 C688.9063,458.2344 688.3125,458.0938 687.4375,458.0938 C684.8125,458.0938 682.8125,460.1719 682.8125,462.8906 L682.8125,464.0156 C682.8125,466.5938 684.9219,468.4844 687.8125,468.4844 C689.0313,468.4844 690.1875,468.1875 690.9375,467.6406 C691.5156,467.2344 691.8438,466.7813 691.8438,466.3906 C691.8438,465.9375 691.4531,465.5469 690.9844,465.5469 C690.7656,465.5469 690.5625,465.625 690.375,465.8125 C689.9219,466.2969 689.9219,466.2969 689.7344,466.3906 C689.3125,466.6563 688.625,466.7813 687.8594,466.7813 C685.8125,466.7813 684.5156,465.6875 684.5156,463.9844 L684.5156,462.8906 C684.5156,461.1094 685.7656,459.7969 687.5,459.7969 C688.0781,459.7969 688.6875,459.9531 689.1563,460.2031 C689.6406,460.4844 689.8125,460.7031 689.9063,461.1094 C689.9688,461.5156 690,461.6406 690.1406,461.7656 C690.2813,461.9063 690.5156,462.0156 690.7344,462.0156 C691,462.0156 691.2656,461.875 691.4375,461.6563 C691.5469,461.5 691.5781,461.3125 691.5781,460.8906 L691.5781,459.4688 C691.5781,459.0313 691.5625,458.9063 691.4688,458.75 C691.3125,458.4844 691.0313,458.3438 690.7344,458.3438 C690.4375,458.3438 690.2344,458.4375 690.0156,458.75 L689.8438,458.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120" x="701.5" y="467.8467">ViewRootImpl.W</text><line style="stroke:#181818;stroke-width:0.5;" x1="673.5" x2="823.5" y1="479" y2="479"/><line style="stroke:#181818;stroke-width:0.5;" x1="673.5" x2="823.5" y1="487" y2="487"/></g><!--class IWindow--><g id="elem_IWindow"><rect codeLine="17" fill="#F1F1F1" height="48" id="IWindow" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="92" x="702.5" y="223"/><ellipse cx="717.5" cy="239" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M718.4531,235.7813 L720.1719,235.7813 C720.5625,235.7813 720.75,235.75 720.875,235.6719 C721.1406,235.5156 721.2813,235.2344 721.2813,234.9375 C721.2813,234.6719 721.1719,234.4063 720.9375,234.2344 C720.7656,234.125 720.625,234.0938 720.1719,234.0938 L715.0313,234.0938 C714.5938,234.0938 714.4688,234.1094 714.3125,234.2031 C714.0625,234.3594 713.9063,234.6563 713.9063,234.9375 C713.9063,235.2188 714.0469,235.4688 714.2656,235.6406 C714.4219,235.75 714.6094,235.7813 715.0313,235.7813 L716.75,235.7813 L716.75,242.2969 L715.0313,242.2969 C714.5938,242.2969 714.4688,242.3125 714.3125,242.4219 C714.0625,242.5781 713.9063,242.8594 713.9063,243.1563 C713.9063,243.4063 714.0469,243.6719 714.2656,243.8281 C714.4219,243.9531 714.625,244 715.0313,244 L720.1719,244 C720.9219,244 721.2813,243.7188 721.2813,243.1563 C721.2813,242.875 721.1719,242.625 720.9375,242.4531 C720.7656,242.3281 720.625,242.2969 720.1719,242.2969 L718.4531,242.2969 L718.4531,235.7813 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="60" x="731.5" y="243.8467">IWindow</text><line style="stroke:#181818;stroke-width:0.5;" x1="703.5" x2="793.5" y1="255" y2="255"/><line style="stroke:#181818;stroke-width:0.5;" x1="703.5" x2="793.5" y1="263" y2="263"/></g><!--class IWindowManager--><g id="elem_IWindowManager"><rect fill="#F1F1F1" height="48" id="IWindowManager" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="153" x="7" y="447"/><ellipse cx="22" cy="463" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M24.3438,458.6719 C23.4063,458.2344 22.8125,458.0938 21.9375,458.0938 C19.3125,458.0938 17.3125,460.1719 17.3125,462.8906 L17.3125,464.0156 C17.3125,466.5938 19.4219,468.4844 22.3125,468.4844 C23.5313,468.4844 24.6875,468.1875 25.4375,467.6406 C26.0156,467.2344 26.3438,466.7813 26.3438,466.3906 C26.3438,465.9375 25.9531,465.5469 25.4844,465.5469 C25.2656,465.5469 25.0625,465.625 24.875,465.8125 C24.4219,466.2969 24.4219,466.2969 24.2344,466.3906 C23.8125,466.6563 23.125,466.7813 22.3594,466.7813 C20.3125,466.7813 19.0156,465.6875 19.0156,463.9844 L19.0156,462.8906 C19.0156,461.1094 20.2656,459.7969 22,459.7969 C22.5781,459.7969 23.1875,459.9531 23.6563,460.2031 C24.1406,460.4844 24.3125,460.7031 24.4063,461.1094 C24.4688,461.5156 24.5,461.6406 24.6406,461.7656 C24.7813,461.9063 25.0156,462.0156 25.2344,462.0156 C25.5,462.0156 25.7656,461.875 25.9375,461.6563 C26.0469,461.5 26.0781,461.3125 26.0781,460.8906 L26.0781,459.4688 C26.0781,459.0313 26.0625,458.9063 25.9688,458.75 C25.8125,458.4844 25.5313,458.3438 25.2344,458.3438 C24.9375,458.3438 24.7344,458.4375 24.5156,458.75 L24.3438,458.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="121" x="36" y="467.8467">IWindowManager</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="159" y1="479" y2="479"/><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="159" y1="487" y2="487"/></g><!--class Surface--><g id="elem_Surface"><rect fill="#F1F1F1" height="48" id="Surface" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="86" x="376.5" y="447"/><ellipse cx="391.5" cy="463" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M393.8438,458.6719 C392.9063,458.2344 392.3125,458.0938 391.4375,458.0938 C388.8125,458.0938 386.8125,460.1719 386.8125,462.8906 L386.8125,464.0156 C386.8125,466.5938 388.9219,468.4844 391.8125,468.4844 C393.0313,468.4844 394.1875,468.1875 394.9375,467.6406 C395.5156,467.2344 395.8438,466.7813 395.8438,466.3906 C395.8438,465.9375 395.4531,465.5469 394.9844,465.5469 C394.7656,465.5469 394.5625,465.625 394.375,465.8125 C393.9219,466.2969 393.9219,466.2969 393.7344,466.3906 C393.3125,466.6563 392.625,466.7813 391.8594,466.7813 C389.8125,466.7813 388.5156,465.6875 388.5156,463.9844 L388.5156,462.8906 C388.5156,461.1094 389.7656,459.7969 391.5,459.7969 C392.0781,459.7969 392.6875,459.9531 393.1563,460.2031 C393.6406,460.4844 393.8125,460.7031 393.9063,461.1094 C393.9688,461.5156 394,461.6406 394.1406,461.7656 C394.2813,461.9063 394.5156,462.0156 394.7344,462.0156 C395,462.0156 395.2656,461.875 395.4375,461.6563 C395.5469,461.5 395.5781,461.3125 395.5781,460.8906 L395.5781,459.4688 C395.5781,459.0313 395.5625,458.9063 395.4688,458.75 C395.3125,458.4844 395.0313,458.3438 394.7344,458.3438 C394.4375,458.3438 394.2344,458.4375 394.0156,458.75 L393.8438,458.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="54" x="405.5" y="467.8467">Surface</text><line style="stroke:#181818;stroke-width:0.5;" x1="377.5" x2="461.5" y1="479" y2="479"/><line style="stroke:#181818;stroke-width:0.5;" x1="377.5" x2="461.5" y1="487" y2="487"/></g><!--class SurfaceControl--><g id="elem_SurfaceControl"><rect fill="#F1F1F1" height="48" id="SurfaceControl" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="140" x="497.5" y="447"/><ellipse cx="512.5" cy="463" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M514.8438,458.6719 C513.9063,458.2344 513.3125,458.0938 512.4375,458.0938 C509.8125,458.0938 507.8125,460.1719 507.8125,462.8906 L507.8125,464.0156 C507.8125,466.5938 509.9219,468.4844 512.8125,468.4844 C514.0313,468.4844 515.1875,468.1875 515.9375,467.6406 C516.5156,467.2344 516.8438,466.7813 516.8438,466.3906 C516.8438,465.9375 516.4531,465.5469 515.9844,465.5469 C515.7656,465.5469 515.5625,465.625 515.375,465.8125 C514.9219,466.2969 514.9219,466.2969 514.7344,466.3906 C514.3125,466.6563 513.625,466.7813 512.8594,466.7813 C510.8125,466.7813 509.5156,465.6875 509.5156,463.9844 L509.5156,462.8906 C509.5156,461.1094 510.7656,459.7969 512.5,459.7969 C513.0781,459.7969 513.6875,459.9531 514.1563,460.2031 C514.6406,460.4844 514.8125,460.7031 514.9063,461.1094 C514.9688,461.5156 515,461.6406 515.1406,461.7656 C515.2813,461.9063 515.5156,462.0156 515.7344,462.0156 C516,462.0156 516.2656,461.875 516.4375,461.6563 C516.5469,461.5 516.5781,461.3125 516.5781,460.8906 L516.5781,459.4688 C516.5781,459.0313 516.5625,458.9063 516.4688,458.75 C516.3125,458.4844 516.0313,458.3438 515.7344,458.3438 C515.4375,458.3438 515.2344,458.4375 515.0156,458.75 L514.8438,458.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="108" x="526.5" y="467.8467">SurfaceControl</text><line style="stroke:#181818;stroke-width:0.5;" x1="498.5" x2="636.5" y1="479" y2="479"/><line style="stroke:#181818;stroke-width:0.5;" x1="498.5" x2="636.5" y1="487" y2="487"/></g><!--reverse link Activity to Window--><g id="link_Activity_Window"><path codeLine="4" d="M265.703,31 C277.297,31 276.891,31 288.485,31 " fill="none" id="Activity-backto-Window" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="253.703,31,259.703,35,265.703,31,259.703,27,253.703,31" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Window to PhoneWindow--><g id="link_Window_PhoneWindow"><path codeLine="5" d="M363.3864,68.7853 C378.2124,86.4433 387.026,96.941 401.919,114.678 " fill="none" id="Window-backto-PhoneWindow" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="351.812,55,358.7913,72.6434,367.9815,64.9271,351.812,55" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Window to WindowManager--><g id="link_Window_WindowManager"><path codeLine="6" d="M305.7401,64.233 C291.0811,81.891 278.587,96.941 263.861,114.678 " fill="none" id="Window-backto-WindowManager" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="313.405,55,306.4949,57.0615,305.7401,64.233,312.6502,62.1715,313.405,55" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link WindowManager to WindowManagerImpl--><g id="link_WindowManager_WindowManagerImpl"><path codeLine="7" d="M244.5,181 C244.5,198.658 244.5,204.941 244.5,222.678 " fill="none" id="WindowManager-backto-WindowManagerImpl" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="244.5,163,238.5,181,250.5,181,244.5,163" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link WindowManagerImpl to WindowManagerGlobal--><g id="link_WindowManagerImpl_WindowManagerGlobal"><path codeLine="9" d="M244.5,283.06 C244.5,300.447 244.5,312.353 244.5,330.696 " fill="none" id="WindowManagerImpl-backto-WindowManagerGlobal" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="244.5,271.06,240.5,277.06,244.5,283.06,248.5,277.06,244.5,271.06" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ViewParent to ViewRootImpl--><g id="link_ViewParent_ViewRootImpl"><path codeLine="11" d="M443.5,289.06 C443.5,307.833 443.5,316.205 443.5,334.971 " fill="none" id="ViewParent-backto-ViewRootImpl" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="443.5,271.06,437.5,289.06,449.5,289.06,443.5,271.06" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ViewRootImpl to IWindowSession--><g id="link_ViewRootImpl_IWindowSession"><path codeLine="13" d="M396.6543,389.446 C366.7873,408.2193 334.992,428.2052 305.137,446.9708 " fill="none" id="ViewRootImpl-backto-IWindowSession" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="406.814,383.06,399.6055,382.8664,396.6543,389.446,403.8628,389.6396,406.814,383.06" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link IWindow to IWindow_Stub--><g id="link_IWindow_IWindow_Stub"><path codeLine="18" d="M748.5,289.06 C748.5,307.833 748.5,316.205 748.5,334.971 " fill="none" id="IWindow-backto-IWindow_Stub" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="none" points="748.5,271.06,742.5,289.06,754.5,289.06,748.5,271.06" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link IWindow_Stub to w--><g id="link_IWindow_Stub_w"><path codeLine="19" d="M748.5,401.06 C748.5,419.8333 748.5,428.2052 748.5,446.9708 " fill="none" id="IWindow_Stub-backto-w" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="748.5,383.06,742.5,401.06,754.5,401.06,748.5,383.06" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ViewRootImpl to w--><g id="link_ViewRootImpl_w"><path codeLine="20" d="M518.7263,387.1311 C570.7803,405.9044 632.614,428.2052 684.646,446.9708 " fill="none" id="ViewRootImpl-backto-w" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="507.438,383.06,511.7251,388.8583,518.7263,387.1311,514.4392,381.3328,507.438,383.06" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link WindowManagerGlobal to ViewRootImpl--><g id="link_WindowManagerGlobal_ViewRootImpl"><path codeLine="22" d="M354.057,359 C365.68,359 365.304,359 376.928,359 " fill="none" id="WindowManagerGlobal-backto-ViewRootImpl" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="342.057,359,348.057,363,354.057,359,348.057,355,342.057,359" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="350.1498" y="355.4639">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="361.2092" y="355.2538">n</text></g><!--reverse link WindowManagerGlobal to IWindowManager--><g id="link_WindowManagerGlobal_IWindowManager"><path codeLine="23" d="M194.7938,393.9606 C167.9758,412.2836 142.887,429.4249 117.398,446.8398 " fill="none" id="WindowManagerGlobal-backto-IWindowManager" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="204.702,387.191,197.4914,387.2731,194.7938,393.9606,202.0044,393.8785,204.702,387.191" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link WindowManagerGlobal to IWindowSession--><g id="link_WindowManagerGlobal_IWindowSession"><path codeLine="24" d="M252.9905,398.9153 C256.9875,417.2383 259.647,429.4249 263.447,446.8398 " fill="none" id="WindowManagerGlobal-backto-IWindowSession" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="250.433,387.191,247.8037,393.9057,252.9905,398.9153,255.6199,392.2006,250.433,387.191" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ViewRootImpl to Surface--><g id="link_ViewRootImpl_Surface"><path codeLine="26" d="M435.911,394.7842 C431.815,413.5575 428.619,428.2052 424.525,446.9708 " fill="none" id="ViewRootImpl-backto-Surface" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="438.469,383.06,433.2819,388.0694,435.911,394.7842,441.0981,389.7748,438.469,383.06" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ViewRootImpl to SurfaceControl--><g id="link_ViewRootImpl_SurfaceControl"><path codeLine="27" d="M478.4712,391.0231 C499.6352,409.7964 520.386,428.2052 541.54,446.9708 " fill="none" id="ViewRootImpl-backto-SurfaceControl" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="469.494,383.06,471.3282,390.0339,478.4712,391.0231,476.6369,384.0492,469.494,383.06" style="stroke:#181818;stroke-width:1.0;"/></g><!--SRC=[TL71QiCm3BtxAuHtw5QMq9rw2OKjq973e2om7eUIUOd1iuljDWpsyLjYPtNgz6JhwUb9Ubh04ngMepoXWUmdIS3z2PUMwK-i6Uov_53T2qfic2PO6Qknjb0BDCOdoMDj-OdRRrWc8-GUfxbhbMHJV9aa5ygJoDLDeEBh84ZOrUFFGbKe8ClWjho_sMxNwzNg3aek6y6iah3Pa4WdRkzKWhNVEEjsg9cqvFnrO_Nngr9scEXSKJZ1aXd3bIGXQ-XtaLz0nCXRfPbgD1xQq6hgAzFI7YiAVvVom7iFU4zeg9Rk1reNJqUA_yEawLGd3DoYNRn4HyYS-_I1zhUdaaxTcUFsCcFdsUFFy4RJue7Aux3VrKIkfDLA_080]--></g></svg>

<h2 id="IWindowManager"><a href="#IWindowManager" class="headerlink" title="IWindowManager"></a>IWindowManager</h2><p>IWindowManager在<code>IWindowManager.aidl</code>文件中定义，是<code>WindowManagerService</code>的对外接口。</p>
<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="278px" preserveAspectRatio="none" style="width:464px;height:278px;background:#FFFFFF;" version="1.1" viewBox="0 0 464 278" width="464px" zoomAndPan="magnify"><defs/><g><!--class IWindowManager--><g id="elem_IWindowManager"><rect codeLine="1" fill="#F1F1F1" height="48" id="IWindowManager" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="155" x="302.5" y="7"/><ellipse cx="317.5" cy="23" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M318.4531,19.7813 L320.1719,19.7813 C320.5625,19.7813 320.75,19.75 320.875,19.6719 C321.1406,19.5156 321.2813,19.2344 321.2813,18.9375 C321.2813,18.6719 321.1719,18.4063 320.9375,18.2344 C320.7656,18.125 320.625,18.0938 320.1719,18.0938 L315.0313,18.0938 C314.5938,18.0938 314.4688,18.1094 314.3125,18.2031 C314.0625,18.3594 313.9063,18.6563 313.9063,18.9375 C313.9063,19.2188 314.0469,19.4688 314.2656,19.6406 C314.4219,19.75 314.6094,19.7813 315.0313,19.7813 L316.75,19.7813 L316.75,26.2969 L315.0313,26.2969 C314.5938,26.2969 314.4688,26.3125 314.3125,26.4219 C314.0625,26.5781 313.9063,26.8594 313.9063,27.1563 C313.9063,27.4063 314.0469,27.6719 314.2656,27.8281 C314.4219,27.9531 314.625,28 315.0313,28 L320.1719,28 C320.9219,28 321.2813,27.7188 321.2813,27.1563 C321.2813,26.875 321.1719,26.625 320.9375,26.4531 C320.7656,26.3281 320.625,26.2969 320.1719,26.2969 L318.4531,26.2969 L318.4531,19.7813 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="123" x="331.5" y="27.8467">IWindowManager</text><line style="stroke:#181818;stroke-width:0.5;" x1="303.5" x2="456.5" y1="39" y2="39"/><line style="stroke:#181818;stroke-width:0.5;" x1="303.5" x2="456.5" y1="47" y2="47"/></g><!--class stub--><g id="elem_stub"><rect codeLine="2" fill="#F1F1F1" height="48" id="stub" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="191" x="245.5" y="115"/><ellipse cx="260.5" cy="131" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M262.5781,132.8125 L262.9688,133.7969 L262.5781,133.7969 C262.125,133.7969 262.0156,133.8125 261.8594,133.9219 C261.6094,134.0781 261.4531,134.3594 261.4531,134.6563 C261.4531,134.9219 261.5938,135.1719 261.8125,135.3281 C261.9531,135.4531 262.1563,135.5 262.5781,135.5 L264.9375,135.5 C265.2969,135.5 265.5156,135.4688 265.6563,135.375 C265.9063,135.2344 266.0625,134.9375 266.0625,134.6563 C266.0625,134.375 265.9219,134.125 265.7031,133.9688 C265.5313,133.8281 265.375,133.7969 264.9063,133.7969 L261.5156,125.5938 L257.8438,125.5938 C257.3906,125.5938 257.2656,125.6094 257.1094,125.7031 C256.8594,125.875 256.7031,126.1563 256.7031,126.4375 C256.7031,126.7188 256.8438,126.9688 257.0625,127.1406 C257.2344,127.25 257.4063,127.2813 257.8438,127.2813 L258.9219,127.2813 L256.2813,133.7969 C255.8594,133.7969 255.7031,133.8125 255.5469,133.9219 C255.2969,134.0781 255.1406,134.3594 255.1406,134.6563 C255.1406,135.2188 255.5156,135.5 256.2656,135.5 L258.5313,135.5 C258.8906,135.5 259.1094,135.4688 259.2344,135.375 C259.5,135.2344 259.6406,134.9375 259.6406,134.6563 C259.6406,134.375 259.5156,134.125 259.2969,133.9531 C259.125,133.8281 258.9844,133.7969 258.5313,133.7969 L258.1406,133.7969 L258.5313,132.8125 L262.5781,132.8125 Z M261.875,131.1094 L259.2031,131.1094 L260.5469,127.8438 L261.875,131.1094 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="159" x="274.5" y="135.8467">IWindowManager.Stub</text><line style="stroke:#181818;stroke-width:0.5;" x1="246.5" x2="435.5" y1="147" y2="147"/><line style="stroke:#181818;stroke-width:0.5;" x1="246.5" x2="435.5" y1="155" y2="155"/></g><!--class Binder--><g id="elem_Binder"><rect fill="#F1F1F1" height="48" id="Binder" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="79" x="188.5" y="7"/><ellipse cx="203.5" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M205.8438,18.6719 C204.9063,18.2344 204.3125,18.0938 203.4375,18.0938 C200.8125,18.0938 198.8125,20.1719 198.8125,22.8906 L198.8125,24.0156 C198.8125,26.5938 200.9219,28.4844 203.8125,28.4844 C205.0313,28.4844 206.1875,28.1875 206.9375,27.6406 C207.5156,27.2344 207.8438,26.7813 207.8438,26.3906 C207.8438,25.9375 207.4531,25.5469 206.9844,25.5469 C206.7656,25.5469 206.5625,25.625 206.375,25.8125 C205.9219,26.2969 205.9219,26.2969 205.7344,26.3906 C205.3125,26.6563 204.625,26.7813 203.8594,26.7813 C201.8125,26.7813 200.5156,25.6875 200.5156,23.9844 L200.5156,22.8906 C200.5156,21.1094 201.7656,19.7969 203.5,19.7969 C204.0781,19.7969 204.6875,19.9531 205.1563,20.2031 C205.6406,20.4844 205.8125,20.7031 205.9063,21.1094 C205.9688,21.5156 206,21.6406 206.1406,21.7656 C206.2813,21.9063 206.5156,22.0156 206.7344,22.0156 C207,22.0156 207.2656,21.875 207.4375,21.6563 C207.5469,21.5 207.5781,21.3125 207.5781,20.8906 L207.5781,19.4688 C207.5781,19.0313 207.5625,18.9063 207.4688,18.75 C207.3125,18.4844 207.0313,18.3438 206.7344,18.3438 C206.4375,18.3438 206.2344,18.4375 206.0156,18.75 L205.8438,18.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="47" x="217.5" y="27.8467">Binder</text><line style="stroke:#181818;stroke-width:0.5;" x1="189.5" x2="266.5" y1="39" y2="39"/><line style="stroke:#181818;stroke-width:0.5;" x1="189.5" x2="266.5" y1="47" y2="47"/></g><!--class WindowManagerService--><g id="elem_WindowManagerService"><rect fill="#F1F1F1" height="48" id="WindowManagerService" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="202" x="229" y="223"/><ellipse cx="244" cy="239" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M246.3438,234.6719 C245.4063,234.2344 244.8125,234.0938 243.9375,234.0938 C241.3125,234.0938 239.3125,236.1719 239.3125,238.8906 L239.3125,240.0156 C239.3125,242.5938 241.4219,244.4844 244.3125,244.4844 C245.5313,244.4844 246.6875,244.1875 247.4375,243.6406 C248.0156,243.2344 248.3438,242.7813 248.3438,242.3906 C248.3438,241.9375 247.9531,241.5469 247.4844,241.5469 C247.2656,241.5469 247.0625,241.625 246.875,241.8125 C246.4219,242.2969 246.4219,242.2969 246.2344,242.3906 C245.8125,242.6563 245.125,242.7813 244.3594,242.7813 C242.3125,242.7813 241.0156,241.6875 241.0156,239.9844 L241.0156,238.8906 C241.0156,237.1094 242.2656,235.7969 244,235.7969 C244.5781,235.7969 245.1875,235.9531 245.6563,236.2031 C246.1406,236.4844 246.3125,236.7031 246.4063,237.1094 C246.4688,237.5156 246.5,237.6406 246.6406,237.7656 C246.7813,237.9063 247.0156,238.0156 247.2344,238.0156 C247.5,238.0156 247.7656,237.875 247.9375,237.6563 C248.0469,237.5 248.0781,237.3125 248.0781,236.8906 L248.0781,235.4688 C248.0781,235.0313 248.0625,234.9063 247.9688,234.75 C247.8125,234.4844 247.5313,234.3438 247.2344,234.3438 C246.9375,234.3438 246.7344,234.4375 246.5156,234.75 L246.3438,234.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="170" x="258" y="243.8467">WindowManagerService</text><line style="stroke:#181818;stroke-width:0.5;" x1="230" x2="430" y1="255" y2="255"/><line style="stroke:#181818;stroke-width:0.5;" x1="230" x2="430" y1="263" y2="263"/></g><!--class IWindowSession--><g id="elem_IWindowSession"><rect codeLine="7" fill="#F1F1F1" height="48" id="IWindowSession" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="146" x="7" y="7"/><ellipse cx="22" cy="23" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M22.9531,19.7813 L24.6719,19.7813 C25.0625,19.7813 25.25,19.75 25.375,19.6719 C25.6406,19.5156 25.7813,19.2344 25.7813,18.9375 C25.7813,18.6719 25.6719,18.4063 25.4375,18.2344 C25.2656,18.125 25.125,18.0938 24.6719,18.0938 L19.5313,18.0938 C19.0938,18.0938 18.9688,18.1094 18.8125,18.2031 C18.5625,18.3594 18.4063,18.6563 18.4063,18.9375 C18.4063,19.2188 18.5469,19.4688 18.7656,19.6406 C18.9219,19.75 19.1094,19.7813 19.5313,19.7813 L21.25,19.7813 L21.25,26.2969 L19.5313,26.2969 C19.0938,26.2969 18.9688,26.3125 18.8125,26.4219 C18.5625,26.5781 18.4063,26.8594 18.4063,27.1563 C18.4063,27.4063 18.5469,27.6719 18.7656,27.8281 C18.9219,27.9531 19.125,28 19.5313,28 L24.6719,28 C25.4219,28 25.7813,27.7188 25.7813,27.1563 C25.7813,26.875 25.6719,26.625 25.4375,26.4531 C25.2656,26.3281 25.125,26.2969 24.6719,26.2969 L22.9531,26.2969 L22.9531,19.7813 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="114" x="36" y="27.8467">IWindowSession</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="152" y1="39" y2="39"/><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="152" y1="47" y2="47"/></g><!--class SessionStub--><g id="elem_SessionStub"><rect codeLine="8" fill="#F1F1F1" height="48" id="SessionStub" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="182" x="28" y="115"/><ellipse cx="43" cy="131" fill="#A9DCDF" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M45.0781,132.8125 L45.4688,133.7969 L45.0781,133.7969 C44.625,133.7969 44.5156,133.8125 44.3594,133.9219 C44.1094,134.0781 43.9531,134.3594 43.9531,134.6563 C43.9531,134.9219 44.0938,135.1719 44.3125,135.3281 C44.4531,135.4531 44.6563,135.5 45.0781,135.5 L47.4375,135.5 C47.7969,135.5 48.0156,135.4688 48.1563,135.375 C48.4063,135.2344 48.5625,134.9375 48.5625,134.6563 C48.5625,134.375 48.4219,134.125 48.2031,133.9688 C48.0313,133.8281 47.875,133.7969 47.4063,133.7969 L44.0156,125.5938 L40.3438,125.5938 C39.8906,125.5938 39.7656,125.6094 39.6094,125.7031 C39.3594,125.875 39.2031,126.1563 39.2031,126.4375 C39.2031,126.7188 39.3438,126.9688 39.5625,127.1406 C39.7344,127.25 39.9063,127.2813 40.3438,127.2813 L41.4219,127.2813 L38.7813,133.7969 C38.3594,133.7969 38.2031,133.8125 38.0469,133.9219 C37.7969,134.0781 37.6406,134.3594 37.6406,134.6563 C37.6406,135.2188 38.0156,135.5 38.7656,135.5 L41.0313,135.5 C41.3906,135.5 41.6094,135.4688 41.7344,135.375 C42,135.2344 42.1406,134.9375 42.1406,134.6563 C42.1406,134.375 42.0156,134.125 41.7969,133.9531 C41.625,133.8281 41.4844,133.7969 41.0313,133.7969 L40.6406,133.7969 L41.0313,132.8125 L45.0781,132.8125 Z M44.375,131.1094 L41.7031,131.1094 L43.0469,127.8438 L44.375,131.1094 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="150" x="57" y="135.8467">IWindowSession.Stub</text><line style="stroke:#181818;stroke-width:0.5;" x1="29" x2="209" y1="147" y2="147"/><line style="stroke:#181818;stroke-width:0.5;" x1="29" x2="209" y1="155" y2="155"/></g><!--class Session--><g id="elem_Session"><rect fill="#F1F1F1" height="48" id="Session" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="86" x="97" y="223"/><ellipse cx="112" cy="239" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M114.3438,234.6719 C113.4063,234.2344 112.8125,234.0938 111.9375,234.0938 C109.3125,234.0938 107.3125,236.1719 107.3125,238.8906 L107.3125,240.0156 C107.3125,242.5938 109.4219,244.4844 112.3125,244.4844 C113.5313,244.4844 114.6875,244.1875 115.4375,243.6406 C116.0156,243.2344 116.3438,242.7813 116.3438,242.3906 C116.3438,241.9375 115.9531,241.5469 115.4844,241.5469 C115.2656,241.5469 115.0625,241.625 114.875,241.8125 C114.4219,242.2969 114.4219,242.2969 114.2344,242.3906 C113.8125,242.6563 113.125,242.7813 112.3594,242.7813 C110.3125,242.7813 109.0156,241.6875 109.0156,239.9844 L109.0156,238.8906 C109.0156,237.1094 110.2656,235.7969 112,235.7969 C112.5781,235.7969 113.1875,235.9531 113.6563,236.2031 C114.1406,236.4844 114.3125,236.7031 114.4063,237.1094 C114.4688,237.5156 114.5,237.6406 114.6406,237.7656 C114.7813,237.9063 115.0156,238.0156 115.2344,238.0156 C115.5,238.0156 115.7656,237.875 115.9375,237.6563 C116.0469,237.5 116.0781,237.3125 116.0781,236.8906 L116.0781,235.4688 C116.0781,235.0313 116.0625,234.9063 115.9688,234.75 C115.8125,234.4844 115.5313,234.3438 115.2344,234.3438 C114.9375,234.3438 114.7344,234.4375 114.5156,234.75 L114.3438,234.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="54" x="126" y="243.8467">Session</text><line style="stroke:#181818;stroke-width:0.5;" x1="98" x2="182" y1="255" y2="255"/><line style="stroke:#181818;stroke-width:0.5;" x1="98" x2="182" y1="263" y2="263"/></g><!--reverse link IWindowManager to stub--><g id="link_IWindowManager_stub"><path codeLine="3" d="M365.3225,71.8928 C358.8255,89.5508 356.107,96.941 349.581,114.678 " fill="none" id="IWindowManager-backto-stub" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="371.538,55,359.6916,69.821,370.9535,73.9647,371.538,55" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Binder to stub--><g id="link_Binder_stub"><path codeLine="4" d="M265.647,67.3148 C284.471,84.9728 297.229,96.941 316.138,114.678 " fill="none" id="Binder-backto-stub" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="252.519,55,261.5421,71.6908,269.752,62.9388,252.519,55" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link stub to WindowManagerService--><g id="link_stub_WindowManagerService"><path codeLine="5" d="M336.7555,180.9039 C334.9235,198.5623 334.261,204.9408 332.42,222.6784 " fill="none" id="stub-backto-WindowManagerService" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="338.613,163,330.7876,180.2847,342.7235,181.5231,338.613,163" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link SessionStub to Session--><g id="link_SessionStub_Session"><path codeLine="9" d="M127.0547,180.6569 C130.5527,198.3153 131.866,204.9408 135.38,222.6784 " fill="none" id="SessionStub-backto-Session" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="123.557,163,121.1691,181.8228,132.9403,179.491,123.557,163" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Binder to SessionStub--><g id="link_Binder_SessionStub"><path codeLine="10" d="M191.4447,67.549 C173.2867,85.207 161.221,96.941 142.982,114.678 " fill="none" id="Binder-backto-SessionStub" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="204.349,55,187.2616,63.2476,195.6277,71.8505,204.349,55" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Session to WindowManagerService--><g id="link_Session_WindowManagerService"><path codeLine="11" d="M195.047,247 C210.354,247 213.662,247 228.97,247 " fill="none" id="Session-backto-WindowManagerService" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="183.047,247,189.047,251,195.047,247,189.047,243,183.047,247" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link IWindowSession to SessionStub--><g id="link_IWindowSession_SessionStub"><path codeLine="12" d="M94.6777,71.8929 C101.1745,89.5509 103.8933,96.941 110.419,114.678 " fill="none" id="IWindowSession-backto-SessionStub" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="88.4624,55,89.0467,73.9647,100.3087,69.8211,88.4624,55" style="stroke:#181818;stroke-width:1.0;"/></g><!--SRC=[oymhIIrAIqnELV0CpynBoI_tJSnBJ4yjuafCAYufIamkKL12bT0BBYbDKb98B5Oe1ZAuK2KLR6fqTI4IJa1n504G0U6YQ0bEBIhBJ4xbuif4TqbmQd5nPduUfakW4WYNG0L0V2uaDiGsc3783iAYGK4BXyDGBSNG3m00]--></g></svg>

<h2 id="IWindowSession"><a href="#IWindowSession" class="headerlink" title="IWindowSession"></a>IWindowSession</h2><p>每个app都会有一个Window Session用于与window manager进行交互。<code>IWindowSession</code>是通过aidl定义的binder接口，app通过IWindowSession与WMS进行交互。</p>
<pre class="mermaid">

zenuml
new ViewRootImpl() {
    WindowManagerGlobal.getWindowSession {
        &#x2F;&#x2F;sWindowSession是WindowManagerGlobal的静态类变量
        &#x2F;&#x2F;如果sWindowSession为空就通过WMS.openSession来打开一个
        if (sWindowSession &#x3D;&#x3D; null) {
            WindowManagerService.openSession {
                new Session()
            }
        }
        return sWindowSession
    }
}
</pre>

<h2 id="addWindow把IWindow加入到WMS"><a href="#addWindow把IWindow加入到WMS" class="headerlink" title="addWindow把IWindow加入到WMS"></a>addWindow把<code>IWindow</code>加入到WMS</h2><p>IWindow是一个binder接口，这个binder的service端是app，实现类是<code>ViewRootImpl.W</code>，client端是WMS。WMS会通过IWindow这个binder接口来通知app window相关的事件。先看下addWindow的调用时序：</p>
<pre class="mermaid">

zenuml
group App {
    &lt;&lt;App&gt;&gt; WindowManagerGlobal
    &lt;&lt;App&gt;&gt; ViewRootImpl
}
group WMS {
    &lt;&lt;WMS&gt;&gt; WindowManagerService
    &lt;&lt;WMS&gt;&gt; Session
}
WindowManagerGlobal.addView {
    new ViewRootImpl() {
        &quot;new Surface()&quot;
        &quot;new SurfaceControl()&quot;
        WindowManagerGlobal.getWindowSession {
            WindowManagerService.openSession {
                new Session()
            }
        }
        &quot;new W()&quot;
    }
    ViewRootImpl.setView {
        requestLayout
        Session.addToDisplayAsUser {
            WindowManagerService.addWindow
        }
    }
}
</pre>

<p>addToDisplayAsUser函数的第一个参数是<code>IWindow window</code>，它的实现类就是<code>ViewRootImpl.W</code>类型，W接收到的WMS的事件大部分都交给了<code>ViewRootImpl</code>来处理。</p>
<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="497px" preserveAspectRatio="none" style="width:1116px;height:497px;background:#FFFFFF;" version="1.1" viewBox="0 0 1116 497" width="1116px" zoomAndPan="magnify"><defs/><g><!--class WindowContainer--><g id="elem_WindowContainer"><rect codeLine="1" fill="#F1F1F1" height="48" id="WindowContainer" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="233" x="7" y="10"/><ellipse cx="22" cy="26" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M24.3438,21.6719 C23.4063,21.2344 22.8125,21.0938 21.9375,21.0938 C19.3125,21.0938 17.3125,23.1719 17.3125,25.8906 L17.3125,27.0156 C17.3125,29.5938 19.4219,31.4844 22.3125,31.4844 C23.5313,31.4844 24.6875,31.1875 25.4375,30.6406 C26.0156,30.2344 26.3438,29.7813 26.3438,29.3906 C26.3438,28.9375 25.9531,28.5469 25.4844,28.5469 C25.2656,28.5469 25.0625,28.625 24.875,28.8125 C24.4219,29.2969 24.4219,29.2969 24.2344,29.3906 C23.8125,29.6563 23.125,29.7813 22.3594,29.7813 C20.3125,29.7813 19.0156,28.6875 19.0156,26.9844 L19.0156,25.8906 C19.0156,24.1094 20.2656,22.7969 22,22.7969 C22.5781,22.7969 23.1875,22.9531 23.6563,23.2031 C24.1406,23.4844 24.3125,23.7031 24.4063,24.1094 C24.4688,24.5156 24.5,24.6406 24.6406,24.7656 C24.7813,24.9063 25.0156,25.0156 25.2344,25.0156 C25.5,25.0156 25.7656,24.875 25.9375,24.6563 C26.0469,24.5 26.0781,24.3125 26.0781,23.8906 L26.0781,22.4688 C26.0781,22.0313 26.0625,21.9063 25.9688,21.75 C25.8125,21.4844 25.5313,21.3438 25.2344,21.3438 C24.9375,21.3438 24.7344,21.4375 24.5156,21.75 L24.3438,21.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="127" x="36" y="30.8467">WindowContainer</text><rect fill="#FFFFFF" height="15.9688" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="72" x="171" y="7"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="70" x="172" y="19.1387">DisplayArea</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="239" y1="42" y2="42"/><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="239" y1="50" y2="50"/></g><!--class DisplayArea--><g id="elem_DisplayArea"><rect codeLine="2" fill="#F1F1F1" height="48" id="DisplayArea" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="191" x="28" y="118"/><ellipse cx="43" cy="134" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M45.3438,129.6719 C44.4063,129.2344 43.8125,129.0938 42.9375,129.0938 C40.3125,129.0938 38.3125,131.1719 38.3125,133.8906 L38.3125,135.0156 C38.3125,137.5938 40.4219,139.4844 43.3125,139.4844 C44.5313,139.4844 45.6875,139.1875 46.4375,138.6406 C47.0156,138.2344 47.3438,137.7813 47.3438,137.3906 C47.3438,136.9375 46.9531,136.5469 46.4844,136.5469 C46.2656,136.5469 46.0625,136.625 45.875,136.8125 C45.4219,137.2969 45.4219,137.2969 45.2344,137.3906 C44.8125,137.6563 44.125,137.7813 43.3594,137.7813 C41.3125,137.7813 40.0156,136.6875 40.0156,134.9844 L40.0156,133.8906 C40.0156,132.1094 41.2656,130.7969 43,130.7969 C43.5781,130.7969 44.1875,130.9531 44.6563,131.2031 C45.1406,131.4844 45.3125,131.7031 45.4063,132.1094 C45.4688,132.5156 45.5,132.6406 45.6406,132.7656 C45.7813,132.9063 46.0156,133.0156 46.2344,133.0156 C46.5,133.0156 46.7656,132.875 46.9375,132.6563 C47.0469,132.5 47.0781,132.3125 47.0781,131.8906 L47.0781,130.4688 C47.0781,130.0313 47.0625,129.9063 46.9688,129.75 C46.8125,129.4844 46.5313,129.3438 46.2344,129.3438 C45.9375,129.3438 45.7344,129.4375 45.5156,129.75 L45.3438,129.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85" x="57" y="138.8467">DisplayArea</text><rect fill="#FFFFFF" height="15.9688" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="72" x="150" y="115"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="70" x="151" y="127.1387">DisplayArea</text><line style="stroke:#181818;stroke-width:0.5;" x1="29" x2="218" y1="150" y2="150"/><line style="stroke:#181818;stroke-width:0.5;" x1="29" x2="218" y1="158" y2="158"/></g><!--class Dimmable--><g id="elem_Dimmable"><rect codeLine="4" fill="#F1F1F1" height="48" id="Dimmable" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="196" x="34.5" y="226"/><ellipse cx="49.5" cy="242" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M51.8438,237.6719 C50.9063,237.2344 50.3125,237.0938 49.4375,237.0938 C46.8125,237.0938 44.8125,239.1719 44.8125,241.8906 L44.8125,243.0156 C44.8125,245.5938 46.9219,247.4844 49.8125,247.4844 C51.0313,247.4844 52.1875,247.1875 52.9375,246.6406 C53.5156,246.2344 53.8438,245.7813 53.8438,245.3906 C53.8438,244.9375 53.4531,244.5469 52.9844,244.5469 C52.7656,244.5469 52.5625,244.625 52.375,244.8125 C51.9219,245.2969 51.9219,245.2969 51.7344,245.3906 C51.3125,245.6563 50.625,245.7813 49.8594,245.7813 C47.8125,245.7813 46.5156,244.6875 46.5156,242.9844 L46.5156,241.8906 C46.5156,240.1094 47.7656,238.7969 49.5,238.7969 C50.0781,238.7969 50.6875,238.9531 51.1563,239.2031 C51.6406,239.4844 51.8125,239.7031 51.9063,240.1094 C51.9688,240.5156 52,240.6406 52.1406,240.7656 C52.2813,240.9063 52.5156,241.0156 52.7344,241.0156 C53,241.0156 53.2656,240.875 53.4375,240.6563 C53.5469,240.5 53.5781,240.3125 53.5781,239.8906 L53.5781,238.4688 C53.5781,238.0313 53.5625,237.9063 53.4688,237.75 C53.3125,237.4844 53.0313,237.3438 52.7344,237.3438 C52.4375,237.3438 52.2344,237.4375 52.0156,237.75 L51.8438,237.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="164" x="63.5" y="246.8467">DisplayArea.Dimmable</text><line style="stroke:#181818;stroke-width:0.5;" x1="35.5" x2="229.5" y1="258" y2="258"/><line style="stroke:#181818;stroke-width:0.5;" x1="35.5" x2="229.5" y1="266" y2="266"/></g><!--class RootDisplayArea--><g id="elem_RootDisplayArea"><rect fill="#F1F1F1" height="48" id="RootDisplayArea" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="152" x="87.5" y="334"/><ellipse cx="102.5" cy="350" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M104.8438,345.6719 C103.9063,345.2344 103.3125,345.0938 102.4375,345.0938 C99.8125,345.0938 97.8125,347.1719 97.8125,349.8906 L97.8125,351.0156 C97.8125,353.5938 99.9219,355.4844 102.8125,355.4844 C104.0313,355.4844 105.1875,355.1875 105.9375,354.6406 C106.5156,354.2344 106.8438,353.7813 106.8438,353.3906 C106.8438,352.9375 106.4531,352.5469 105.9844,352.5469 C105.7656,352.5469 105.5625,352.625 105.375,352.8125 C104.9219,353.2969 104.9219,353.2969 104.7344,353.3906 C104.3125,353.6563 103.625,353.7813 102.8594,353.7813 C100.8125,353.7813 99.5156,352.6875 99.5156,350.9844 L99.5156,349.8906 C99.5156,348.1094 100.7656,346.7969 102.5,346.7969 C103.0781,346.7969 103.6875,346.9531 104.1563,347.2031 C104.6406,347.4844 104.8125,347.7031 104.9063,348.1094 C104.9688,348.5156 105,348.6406 105.1406,348.7656 C105.2813,348.9063 105.5156,349.0156 105.7344,349.0156 C106,349.0156 106.2656,348.875 106.4375,348.6563 C106.5469,348.5 106.5781,348.3125 106.5781,347.8906 L106.5781,346.4688 C106.5781,346.0313 106.5625,345.9063 106.4688,345.75 C106.3125,345.4844 106.0313,345.3438 105.7344,345.3438 C105.4375,345.3438 105.2344,345.4375 105.0156,345.75 L104.8438,345.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120" x="116.5" y="354.8467">RootDisplayArea</text><line style="stroke:#181818;stroke-width:0.5;" x1="88.5" x2="238.5" y1="366" y2="366"/><line style="stroke:#181818;stroke-width:0.5;" x1="88.5" x2="238.5" y1="374" y2="374"/></g><!--class DisplayContent--><g id="elem_DisplayContent"><rect fill="#F1F1F1" height="48" id="DisplayContent" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="144" x="203.5" y="442"/><ellipse cx="218.5" cy="458" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M220.8438,453.6719 C219.9063,453.2344 219.3125,453.0938 218.4375,453.0938 C215.8125,453.0938 213.8125,455.1719 213.8125,457.8906 L213.8125,459.0156 C213.8125,461.5938 215.9219,463.4844 218.8125,463.4844 C220.0313,463.4844 221.1875,463.1875 221.9375,462.6406 C222.5156,462.2344 222.8438,461.7813 222.8438,461.3906 C222.8438,460.9375 222.4531,460.5469 221.9844,460.5469 C221.7656,460.5469 221.5625,460.625 221.375,460.8125 C220.9219,461.2969 220.9219,461.2969 220.7344,461.3906 C220.3125,461.6563 219.625,461.7813 218.8594,461.7813 C216.8125,461.7813 215.5156,460.6875 215.5156,458.9844 L215.5156,457.8906 C215.5156,456.1094 216.7656,454.7969 218.5,454.7969 C219.0781,454.7969 219.6875,454.9531 220.1563,455.2031 C220.6406,455.4844 220.8125,455.7031 220.9063,456.1094 C220.9688,456.5156 221,456.6406 221.1406,456.7656 C221.2813,456.9063 221.5156,457.0156 221.7344,457.0156 C222,457.0156 222.2656,456.875 222.4375,456.6563 C222.5469,456.5 222.5781,456.3125 222.5781,455.8906 L222.5781,454.4688 C222.5781,454.0313 222.5625,453.9063 222.4688,453.75 C222.3125,453.4844 222.0313,453.3438 221.7344,453.3438 C221.4375,453.3438 221.2344,453.4375 221.0156,453.75 L220.8438,453.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="112" x="232.5" y="462.8467">DisplayContent</text><line style="stroke:#181818;stroke-width:0.5;" x1="204.5" x2="346.5" y1="474" y2="474"/><line style="stroke:#181818;stroke-width:0.5;" x1="204.5" x2="346.5" y1="482" y2="482"/></g><!--class DisplayArea_WindowContainer--><g id="elem_DisplayArea_WindowContainer"><rect codeLine="9" fill="#F1F1F1" height="48" id="DisplayArea_WindowContainer" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="227" x="275" y="226"/><ellipse cx="290" cy="242" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M292.3438,237.6719 C291.4063,237.2344 290.8125,237.0938 289.9375,237.0938 C287.3125,237.0938 285.3125,239.1719 285.3125,241.8906 L285.3125,243.0156 C285.3125,245.5938 287.4219,247.4844 290.3125,247.4844 C291.5313,247.4844 292.6875,247.1875 293.4375,246.6406 C294.0156,246.2344 294.3438,245.7813 294.3438,245.3906 C294.3438,244.9375 293.9531,244.5469 293.4844,244.5469 C293.2656,244.5469 293.0625,244.625 292.875,244.8125 C292.4219,245.2969 292.4219,245.2969 292.2344,245.3906 C291.8125,245.6563 291.125,245.7813 290.3594,245.7813 C288.3125,245.7813 287.0156,244.6875 287.0156,242.9844 L287.0156,241.8906 C287.0156,240.1094 288.2656,238.7969 290,238.7969 C290.5781,238.7969 291.1875,238.9531 291.6563,239.2031 C292.1406,239.4844 292.3125,239.7031 292.4063,240.1094 C292.4688,240.5156 292.5,240.6406 292.6406,240.7656 C292.7813,240.9063 293.0156,241.0156 293.2344,241.0156 C293.5,241.0156 293.7656,240.875 293.9375,240.6563 C294.0469,240.5 294.0781,240.3125 294.0781,239.8906 L294.0781,238.4688 C294.0781,238.0313 294.0625,237.9063 293.9688,237.75 C293.8125,237.4844 293.5313,237.3438 293.2344,237.3438 C292.9375,237.3438 292.7344,237.4375 292.5156,237.75 L292.3438,237.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85" x="304" y="246.8467">DisplayArea</text><rect fill="#FFFFFF" height="15.9688" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="108" x="397" y="223"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="106" x="398" y="235.1387">WindowContainer</text><line style="stroke:#181818;stroke-width:0.5;" x1="276" x2="501" y1="258" y2="258"/><line style="stroke:#181818;stroke-width:0.5;" x1="276" x2="501" y1="266" y2="266"/></g><!--class WindowContainer2--><g id="elem_WindowContainer2"><rect codeLine="10" fill="#F1F1F1" height="48" id="WindowContainer2" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="269" x="254" y="118"/><ellipse cx="269" cy="134" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M271.3438,129.6719 C270.4063,129.2344 269.8125,129.0938 268.9375,129.0938 C266.3125,129.0938 264.3125,131.1719 264.3125,133.8906 L264.3125,135.0156 C264.3125,137.5938 266.4219,139.4844 269.3125,139.4844 C270.5313,139.4844 271.6875,139.1875 272.4375,138.6406 C273.0156,138.2344 273.3438,137.7813 273.3438,137.3906 C273.3438,136.9375 272.9531,136.5469 272.4844,136.5469 C272.2656,136.5469 272.0625,136.625 271.875,136.8125 C271.4219,137.2969 271.4219,137.2969 271.2344,137.3906 C270.8125,137.6563 270.125,137.7813 269.3594,137.7813 C267.3125,137.7813 266.0156,136.6875 266.0156,134.9844 L266.0156,133.8906 C266.0156,132.1094 267.2656,130.7969 269,130.7969 C269.5781,130.7969 270.1875,130.9531 270.6563,131.2031 C271.1406,131.4844 271.3125,131.7031 271.4063,132.1094 C271.4688,132.5156 271.5,132.6406 271.6406,132.7656 C271.7813,132.9063 272.0156,133.0156 272.2344,133.0156 C272.5,133.0156 272.7656,132.875 272.9375,132.6563 C273.0469,132.5 273.0781,132.3125 273.0781,131.8906 L273.0781,130.4688 C273.0781,130.0313 273.0625,129.9063 272.9688,129.75 C272.8125,129.4844 272.5313,129.3438 272.2344,129.3438 C271.9375,129.3438 271.7344,129.4375 271.5156,129.75 L271.3438,129.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="127" x="283" y="138.8467">WindowContainer</text><rect fill="#FFFFFF" height="15.9688" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="108" x="418" y="115"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="106" x="419" y="127.1387">WindowContainer</text><line style="stroke:#181818;stroke-width:0.5;" x1="255" x2="522" y1="150" y2="150"/><line style="stroke:#181818;stroke-width:0.5;" x1="255" x2="522" y1="158" y2="158"/></g><!--class TaskDisplayArea--><g id="elem_TaskDisplayArea"><rect fill="#F1F1F1" height="48" id="TaskDisplayArea" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="150" x="313.5" y="334"/><ellipse cx="328.5" cy="350" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M330.8438,345.6719 C329.9063,345.2344 329.3125,345.0938 328.4375,345.0938 C325.8125,345.0938 323.8125,347.1719 323.8125,349.8906 L323.8125,351.0156 C323.8125,353.5938 325.9219,355.4844 328.8125,355.4844 C330.0313,355.4844 331.1875,355.1875 331.9375,354.6406 C332.5156,354.2344 332.8438,353.7813 332.8438,353.3906 C332.8438,352.9375 332.4531,352.5469 331.9844,352.5469 C331.7656,352.5469 331.5625,352.625 331.375,352.8125 C330.9219,353.2969 330.9219,353.2969 330.7344,353.3906 C330.3125,353.6563 329.625,353.7813 328.8594,353.7813 C326.8125,353.7813 325.5156,352.6875 325.5156,350.9844 L325.5156,349.8906 C325.5156,348.1094 326.7656,346.7969 328.5,346.7969 C329.0781,346.7969 329.6875,346.9531 330.1563,347.2031 C330.6406,347.4844 330.8125,347.7031 330.9063,348.1094 C330.9688,348.5156 331,348.6406 331.1406,348.7656 C331.2813,348.9063 331.5156,349.0156 331.7344,349.0156 C332,349.0156 332.2656,348.875 332.4375,348.6563 C332.5469,348.5 332.5781,348.3125 332.5781,347.8906 L332.5781,346.4688 C332.5781,346.0313 332.5625,345.9063 332.4688,345.75 C332.3125,345.4844 332.0313,345.3438 331.7344,345.3438 C331.4375,345.3438 331.2344,345.4375 331.0156,345.75 L330.8438,345.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="118" x="342.5" y="354.8467">TaskDisplayArea</text><line style="stroke:#181818;stroke-width:0.5;" x1="314.5" x2="462.5" y1="366" y2="366"/><line style="stroke:#181818;stroke-width:0.5;" x1="314.5" x2="462.5" y1="374" y2="374"/></g><!--class WindowContainer3--><g id="elem_WindowContainer3"><rect codeLine="15" fill="#F1F1F1" height="48" id="WindowContainer3" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="269" x="558" y="118"/><ellipse cx="573" cy="134" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M575.3438,129.6719 C574.4063,129.2344 573.8125,129.0938 572.9375,129.0938 C570.3125,129.0938 568.3125,131.1719 568.3125,133.8906 L568.3125,135.0156 C568.3125,137.5938 570.4219,139.4844 573.3125,139.4844 C574.5313,139.4844 575.6875,139.1875 576.4375,138.6406 C577.0156,138.2344 577.3438,137.7813 577.3438,137.3906 C577.3438,136.9375 576.9531,136.5469 576.4844,136.5469 C576.2656,136.5469 576.0625,136.625 575.875,136.8125 C575.4219,137.2969 575.4219,137.2969 575.2344,137.3906 C574.8125,137.6563 574.125,137.7813 573.3594,137.7813 C571.3125,137.7813 570.0156,136.6875 570.0156,134.9844 L570.0156,133.8906 C570.0156,132.1094 571.2656,130.7969 573,130.7969 C573.5781,130.7969 574.1875,130.9531 574.6563,131.2031 C575.1406,131.4844 575.3125,131.7031 575.4063,132.1094 C575.4688,132.5156 575.5,132.6406 575.6406,132.7656 C575.7813,132.9063 576.0156,133.0156 576.2344,133.0156 C576.5,133.0156 576.7656,132.875 576.9375,132.6563 C577.0469,132.5 577.0781,132.3125 577.0781,131.8906 L577.0781,130.4688 C577.0781,130.0313 577.0625,129.9063 576.9688,129.75 C576.8125,129.4844 576.5313,129.3438 576.2344,129.3438 C575.9375,129.3438 575.7344,129.4375 575.5156,129.75 L575.3438,129.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="127" x="587" y="138.8467">WindowContainer</text><rect fill="#FFFFFF" height="15.9688" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="108" x="722" y="115"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="106" x="723" y="127.1387">WindowContainer</text><line style="stroke:#181818;stroke-width:0.5;" x1="559" x2="826" y1="150" y2="150"/><line style="stroke:#181818;stroke-width:0.5;" x1="559" x2="826" y1="158" y2="158"/></g><!--class TaskFragment--><g id="elem_TaskFragment"><rect fill="#F1F1F1" height="48" id="TaskFragment" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="135" x="625" y="226"/><ellipse cx="640" cy="242" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M642.3438,237.6719 C641.4063,237.2344 640.8125,237.0938 639.9375,237.0938 C637.3125,237.0938 635.3125,239.1719 635.3125,241.8906 L635.3125,243.0156 C635.3125,245.5938 637.4219,247.4844 640.3125,247.4844 C641.5313,247.4844 642.6875,247.1875 643.4375,246.6406 C644.0156,246.2344 644.3438,245.7813 644.3438,245.3906 C644.3438,244.9375 643.9531,244.5469 643.4844,244.5469 C643.2656,244.5469 643.0625,244.625 642.875,244.8125 C642.4219,245.2969 642.4219,245.2969 642.2344,245.3906 C641.8125,245.6563 641.125,245.7813 640.3594,245.7813 C638.3125,245.7813 637.0156,244.6875 637.0156,242.9844 L637.0156,241.8906 C637.0156,240.1094 638.2656,238.7969 640,238.7969 C640.5781,238.7969 641.1875,238.9531 641.6563,239.2031 C642.1406,239.4844 642.3125,239.7031 642.4063,240.1094 C642.4688,240.5156 642.5,240.6406 642.6406,240.7656 C642.7813,240.9063 643.0156,241.0156 643.2344,241.0156 C643.5,241.0156 643.7656,240.875 643.9375,240.6563 C644.0469,240.5 644.0781,240.3125 644.0781,239.8906 L644.0781,238.4688 C644.0781,238.0313 644.0625,237.9063 643.9688,237.75 C643.8125,237.4844 643.5313,237.3438 643.2344,237.3438 C642.9375,237.3438 642.7344,237.4375 642.5156,237.75 L642.3438,237.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="103" x="654" y="246.8467">TaskFragment</text><line style="stroke:#181818;stroke-width:0.5;" x1="626" x2="759" y1="258" y2="258"/><line style="stroke:#181818;stroke-width:0.5;" x1="626" x2="759" y1="266" y2="266"/></g><!--class Task--><g id="elem_Task"><rect fill="#F1F1F1" height="48" id="Task" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="65" x="660" y="334"/><ellipse cx="675" cy="350" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M677.3438,345.6719 C676.4063,345.2344 675.8125,345.0938 674.9375,345.0938 C672.3125,345.0938 670.3125,347.1719 670.3125,349.8906 L670.3125,351.0156 C670.3125,353.5938 672.4219,355.4844 675.3125,355.4844 C676.5313,355.4844 677.6875,355.1875 678.4375,354.6406 C679.0156,354.2344 679.3438,353.7813 679.3438,353.3906 C679.3438,352.9375 678.9531,352.5469 678.4844,352.5469 C678.2656,352.5469 678.0625,352.625 677.875,352.8125 C677.4219,353.2969 677.4219,353.2969 677.2344,353.3906 C676.8125,353.6563 676.125,353.7813 675.3594,353.7813 C673.3125,353.7813 672.0156,352.6875 672.0156,350.9844 L672.0156,349.8906 C672.0156,348.1094 673.2656,346.7969 675,346.7969 C675.5781,346.7969 676.1875,346.9531 676.6563,347.2031 C677.1406,347.4844 677.3125,347.7031 677.4063,348.1094 C677.4688,348.5156 677.5,348.6406 677.6406,348.7656 C677.7813,348.9063 678.0156,349.0156 678.2344,349.0156 C678.5,349.0156 678.7656,348.875 678.9375,348.6563 C679.0469,348.5 679.0781,348.3125 679.0781,347.8906 L679.0781,346.4688 C679.0781,346.0313 679.0625,345.9063 678.9688,345.75 C678.8125,345.4844 678.5313,345.3438 678.2344,345.3438 C677.9375,345.3438 677.7344,345.4375 677.5156,345.75 L677.3438,345.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="33" x="689" y="354.8467">Task</text><line style="stroke:#181818;stroke-width:0.5;" x1="661" x2="724" y1="366" y2="366"/><line style="stroke:#181818;stroke-width:0.5;" x1="661" x2="724" y1="374" y2="374"/></g><!--class WindowContainer_WindowState--><g id="elem_WindowContainer_WindowState"><rect codeLine="21" fill="#F1F1F1" height="48" id="WindowContainer_WindowState" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="243" x="862" y="118"/><ellipse cx="877" cy="134" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M879.3438,129.6719 C878.4063,129.2344 877.8125,129.0938 876.9375,129.0938 C874.3125,129.0938 872.3125,131.1719 872.3125,133.8906 L872.3125,135.0156 C872.3125,137.5938 874.4219,139.4844 877.3125,139.4844 C878.5313,139.4844 879.6875,139.1875 880.4375,138.6406 C881.0156,138.2344 881.3438,137.7813 881.3438,137.3906 C881.3438,136.9375 880.9531,136.5469 880.4844,136.5469 C880.2656,136.5469 880.0625,136.625 879.875,136.8125 C879.4219,137.2969 879.4219,137.2969 879.2344,137.3906 C878.8125,137.6563 878.125,137.7813 877.3594,137.7813 C875.3125,137.7813 874.0156,136.6875 874.0156,134.9844 L874.0156,133.8906 C874.0156,132.1094 875.2656,130.7969 877,130.7969 C877.5781,130.7969 878.1875,130.9531 878.6563,131.2031 C879.1406,131.4844 879.3125,131.7031 879.4063,132.1094 C879.4688,132.5156 879.5,132.6406 879.6406,132.7656 C879.7813,132.9063 880.0156,133.0156 880.2344,133.0156 C880.5,133.0156 880.7656,132.875 880.9375,132.6563 C881.0469,132.5 881.0781,132.3125 881.0781,131.8906 L881.0781,130.4688 C881.0781,130.0313 881.0625,129.9063 880.9688,129.75 C880.8125,129.4844 880.5313,129.3438 880.2344,129.3438 C879.9375,129.3438 879.7344,129.4375 879.5156,129.75 L879.3438,129.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="127" x="891" y="138.8467">WindowContainer</text><rect fill="#FFFFFF" height="15.9688" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="82" x="1026" y="115"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="80" x="1027" y="127.1387">WindowState</text><line style="stroke:#181818;stroke-width:0.5;" x1="863" x2="1104" y1="150" y2="150"/><line style="stroke:#181818;stroke-width:0.5;" x1="863" x2="1104" y1="158" y2="158"/></g><!--class WindowToken--><g id="elem_WindowToken"><rect fill="#F1F1F1" height="48" id="WindowToken" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="133" x="856" y="226"/><ellipse cx="871" cy="242" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M873.3438,237.6719 C872.4063,237.2344 871.8125,237.0938 870.9375,237.0938 C868.3125,237.0938 866.3125,239.1719 866.3125,241.8906 L866.3125,243.0156 C866.3125,245.5938 868.4219,247.4844 871.3125,247.4844 C872.5313,247.4844 873.6875,247.1875 874.4375,246.6406 C875.0156,246.2344 875.3438,245.7813 875.3438,245.3906 C875.3438,244.9375 874.9531,244.5469 874.4844,244.5469 C874.2656,244.5469 874.0625,244.625 873.875,244.8125 C873.4219,245.2969 873.4219,245.2969 873.2344,245.3906 C872.8125,245.6563 872.125,245.7813 871.3594,245.7813 C869.3125,245.7813 868.0156,244.6875 868.0156,242.9844 L868.0156,241.8906 C868.0156,240.1094 869.2656,238.7969 871,238.7969 C871.5781,238.7969 872.1875,238.9531 872.6563,239.2031 C873.1406,239.4844 873.3125,239.7031 873.4063,240.1094 C873.4688,240.5156 873.5,240.6406 873.6406,240.7656 C873.7813,240.9063 874.0156,241.0156 874.2344,241.0156 C874.5,241.0156 874.7656,240.875 874.9375,240.6563 C875.0469,240.5 875.0781,240.3125 875.0781,239.8906 L875.0781,238.4688 C875.0781,238.0313 875.0625,237.9063 874.9688,237.75 C874.8125,237.4844 874.5313,237.3438 874.2344,237.3438 C873.9375,237.3438 873.7344,237.4375 873.5156,237.75 L873.3438,237.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101" x="885" y="246.8467">WindowToken</text><line style="stroke:#181818;stroke-width:0.5;" x1="857" x2="988" y1="258" y2="258"/><line style="stroke:#181818;stroke-width:0.5;" x1="857" x2="988" y1="266" y2="266"/></g><!--class ActivityRecord--><g id="elem_ActivityRecord"><rect fill="#F1F1F1" height="48" id="ActivityRecord" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="139" x="815" y="334"/><ellipse cx="830" cy="350" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M832.3438,345.6719 C831.4063,345.2344 830.8125,345.0938 829.9375,345.0938 C827.3125,345.0938 825.3125,347.1719 825.3125,349.8906 L825.3125,351.0156 C825.3125,353.5938 827.4219,355.4844 830.3125,355.4844 C831.5313,355.4844 832.6875,355.1875 833.4375,354.6406 C834.0156,354.2344 834.3438,353.7813 834.3438,353.3906 C834.3438,352.9375 833.9531,352.5469 833.4844,352.5469 C833.2656,352.5469 833.0625,352.625 832.875,352.8125 C832.4219,353.2969 832.4219,353.2969 832.2344,353.3906 C831.8125,353.6563 831.125,353.7813 830.3594,353.7813 C828.3125,353.7813 827.0156,352.6875 827.0156,350.9844 L827.0156,349.8906 C827.0156,348.1094 828.2656,346.7969 830,346.7969 C830.5781,346.7969 831.1875,346.9531 831.6563,347.2031 C832.1406,347.4844 832.3125,347.7031 832.4063,348.1094 C832.4688,348.5156 832.5,348.6406 832.6406,348.7656 C832.7813,348.9063 833.0156,349.0156 833.2344,349.0156 C833.5,349.0156 833.7656,348.875 833.9375,348.6563 C834.0469,348.5 834.0781,348.3125 834.0781,347.8906 L834.0781,346.4688 C834.0781,346.0313 834.0625,345.9063 833.9688,345.75 C833.8125,345.4844 833.5313,345.3438 833.2344,345.3438 C832.9375,345.3438 832.7344,345.4375 832.5156,345.75 L832.3438,345.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="107" x="844" y="354.8467">ActivityRecord</text><line style="stroke:#181818;stroke-width:0.5;" x1="816" x2="953" y1="366" y2="366"/><line style="stroke:#181818;stroke-width:0.5;" x1="816" x2="953" y1="374" y2="374"/></g><!--reverse link WindowContainer to DisplayArea--><g id="link_WindowContainer_DisplayArea"><path codeLine="3" d="M123.5,76 C123.5,93.658 123.5,99.941 123.5,117.678 " fill="none" id="WindowContainer-backto-DisplayArea" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="123.5,58,117.5,76,129.5,76,123.5,58" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link DisplayArea to Dimmable--><g id="link_DisplayArea_Dimmable"><path codeLine="5" d="M126.9756,183.9355 C128.4746,201.5935 129.014,207.941 130.52,225.678 " fill="none" id="DisplayArea-backto-Dimmable" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="125.453,166,120.9971,184.443,132.9541,183.428,125.453,166" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Dimmable to RootDisplayArea--><g id="link_Dimmable_RootDisplayArea"><path codeLine="6" d="M144.2794,291.2764 C149.4434,308.9344 151.492,315.941 156.68,333.678 " fill="none" id="Dimmable-backto-RootDisplayArea" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="139.227,274,138.5206,292.9605,150.0382,289.5922,139.227,274" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link RootDisplayArea to DisplayContent--><g id="link_RootDisplayArea_DisplayContent"><path codeLine="7" d="M200.8753,394.3729 C219.5333,412.0313 232.117,423.9408 250.858,441.6784 " fill="none" id="RootDisplayArea-backto-DisplayContent" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="187.802,382,196.751,398.7307,204.9996,390.0151,187.802,382" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link WindowContainer2 to DisplayArea_WindowContainer--><g id="link_WindowContainer2_DisplayArea_WindowContainer"><path codeLine="11" d="M388.5,184 C388.5,201.658 388.5,207.941 388.5,225.678 " fill="none" id="WindowContainer2-backto-DisplayArea_WindowContainer" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="388.5,166,382.5,184,394.5,184,388.5,166" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link DisplayArea_WindowContainer to TaskDisplayArea--><g id="link_DisplayArea_WindowContainer_TaskDisplayArea"><path codeLine="12" d="M388.5,292 C388.5,309.658 388.5,315.941 388.5,333.678 " fill="none" id="DisplayArea_WindowContainer-backto-TaskDisplayArea" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="388.5,274,382.5,292,394.5,292,388.5,274" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link TaskDisplayArea to DisplayContent--><g id="link_TaskDisplayArea_DisplayContent"><path codeLine="13" d="M355.2291,390.21 C336.4051,407.8684 319.271,423.9408 300.362,441.6784 " fill="none" id="TaskDisplayArea-backto-DisplayContent" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="363.981,382,356.8684,383.1877,355.2291,390.21,362.3417,389.0223,363.981,382" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link WindowContainer3 to TaskFragment--><g id="link_WindowContainer3_TaskFragment"><path codeLine="16" d="M692.5,184 C692.5,201.658 692.5,207.941 692.5,225.678 " fill="none" id="WindowContainer3-backto-TaskFragment" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="692.5,166,686.5,184,698.5,184,692.5,166" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link TaskFragment to Task--><g id="link_TaskFragment_Task"><path codeLine="17" d="M692.5,292 C692.5,309.658 692.5,315.941 692.5,333.678 " fill="none" id="TaskFragment-backto-Task" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="692.5,274,686.5,292,698.5,292,692.5,274" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link TaskDisplayArea to Task--><g id="link_TaskDisplayArea_Task"><path codeLine="18" d="M475.609,358 C541.028,358 594.447,358 659.865,358 " fill="none" id="TaskDisplayArea-backto-Task" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="463.609,358,469.609,362,475.609,358,469.609,354,463.609,358" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="471.3963" y="354.3352">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="643.8511" y="353.4408">n</text></g><!--reverse link TaskDisplayArea to TaskDisplayArea--><g id="link_TaskDisplayArea_TaskDisplayArea"><path codeLine="19" d="M475.5431,338.6192 C495.4231,339.7662 498.5,345.766 498.5,358 C498.5,370.234 483.443,376.925 463.563,378.072 " fill="none" id="TaskDisplayArea-backto-TaskDisplayArea" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="463.563,337.928,469.3226,342.267,475.5431,338.6192,469.7834,334.2802,463.563,337.928" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="471.7164" y="332.1584">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="471.7164" y="376.4422">n</text></g><!--reverse link WindowContainer_WindowState to WindowToken--><g id="link_WindowContainer_WindowState_WindowToken"><path codeLine="22" d="M961.2858,181.601 C951.1238,199.259 946.128,207.941 935.921,225.678 " fill="none" id="WindowContainer_WindowState-backto-WindowToken" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="970.264,166,956.0854,178.6083,966.4861,184.5938,970.264,166" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link WindowToken to ActivityRecord--><g id="link_WindowToken_ActivityRecord"><path codeLine="23" d="M908.18,290.9439 C901.849,308.6019 899.219,315.941 892.861,333.678 " fill="none" id="WindowToken-backto-ActivityRecord" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="914.255,274,902.5321,288.9189,913.828,292.9689,914.255,274" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link Task to ActivityRecord--><g id="link_Task_ActivityRecord"><path codeLine="25" d="M737.125,358 C767.008,358 784.891,358 814.773,358 " fill="none" id="Task-backto-ActivityRecord" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="725.125,358,731.125,362,737.125,358,731.125,354,725.125,358" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="733.1367" y="353.4408">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="799.1699" y="354.3003">n</text></g><!--reverse link Task to Task--><g id="link_Task_Task"><path codeLine="26" d="M736.9147,336.3844 C755.0607,332.7854 760,341.547 760,358 C760,374.453 743.29,380.88 725.144,377.281 " fill="none" id="Task-backto-Task" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="725.144,338.719,731.8075,341.4753,736.9147,336.3844,730.2512,333.6281,725.144,338.719" style="stroke:#181818;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="733.1599" y="329.9421">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="8" x="733.1599" y="376.9395">n</text></g><!--SRC=[dP312i8m38RlVOhIex21ypg4eVW0K_0uubQakBNI5MNWm-kiRbasT_3MvF-RV7_o4kgQ7vKkp7rZj0EbfOstghwMq2HMmfhbRmjg3MNobyUF8C3kpt-1Mk5MLHMSIYauj9DzmP3ZEwLJ_CEtKsCSNa3g0K7B9RLZ4nGn8Lz_Q3f3HWpV6VHQatD8Cw9tYaQ76gsRqVpd0zGNV0XIyyNlE_oJOKKph7gCdOLprIx0HI-FqCHIlF2uq6963yFEW6FEPzWxS7AIFqC6DgDvRDyuc8lK3BszcEHEtPHhKfaRMx0tFiv4z5v6aPu0]--></g></svg>

<h2 id="relayoutWindow"><a href="#relayoutWindow" class="headerlink" title="relayoutWindow"></a>relayoutWindow</h2><p>Activity启动时在<code>ViewRootImpl.performTraversals</code>中执行relayoutWindow，就会调用<code>mWindowSession.relayout</code>，最后调用<code>WindowManagerService.relayoutWindow</code>。</p>
<p>ViewRootImpl在执行relayoutWindow时，会把<code>SurfaceControl</code>传给WindowManagerService。</p>
<pre class="mermaid">

zenuml
group App {
    &lt;&lt;App&gt;&gt; ViewRootImpl
    &lt;&lt;App&gt;&gt; BLASTBufferQueue
}
ViewRootImpl.relayoutWindow {
    WindowManagerService.relayoutWindow {
        WindowState win &#x3D; windowForClientLocked()
        DisplayContent displayContent &#x3D; &quot;win.getDisplayContent()&quot;
        createSurfaceControl {
            &quot;WindowStateAnimator.createSurfaceLocked()&quot; {
                new WindowSurfaceController() {
                    new SurfaceControl()
                }
            }
            WindowSurfaceController.getSurfaceControl {
                SurfaceControl.&quot;outSurfaceControl.copyFrom&quot;
            }
        }
    }
    updateBlastSurfaceIfNeeded {
        new BLASTBufferQueue()
        blastSurface &#x3D; BLASTBufferQueue.createSurface
        &quot;mSurface.transferFrom(blastSurface)&quot;
    }
}
</pre>

<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="170px" preserveAspectRatio="none" style="width:338px;height:170px;background:#FFFFFF;" version="1.1" viewBox="0 0 338 170" width="338px" zoomAndPan="magnify"><defs/><g><!--class SurfaceControl--><g id="elem_SurfaceControl"><rect fill="#F1F1F1" height="48" id="SurfaceControl" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="140" x="128.5" y="7"/><ellipse cx="143.5" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M145.8438,18.6719 C144.9063,18.2344 144.3125,18.0938 143.4375,18.0938 C140.8125,18.0938 138.8125,20.1719 138.8125,22.8906 L138.8125,24.0156 C138.8125,26.5938 140.9219,28.4844 143.8125,28.4844 C145.0313,28.4844 146.1875,28.1875 146.9375,27.6406 C147.5156,27.2344 147.8438,26.7813 147.8438,26.3906 C147.8438,25.9375 147.4531,25.5469 146.9844,25.5469 C146.7656,25.5469 146.5625,25.625 146.375,25.8125 C145.9219,26.2969 145.9219,26.2969 145.7344,26.3906 C145.3125,26.6563 144.625,26.7813 143.8594,26.7813 C141.8125,26.7813 140.5156,25.6875 140.5156,23.9844 L140.5156,22.8906 C140.5156,21.1094 141.7656,19.7969 143.5,19.7969 C144.0781,19.7969 144.6875,19.9531 145.1563,20.2031 C145.6406,20.4844 145.8125,20.7031 145.9063,21.1094 C145.9688,21.5156 146,21.6406 146.1406,21.7656 C146.2813,21.9063 146.5156,22.0156 146.7344,22.0156 C147,22.0156 147.2656,21.875 147.4375,21.6563 C147.5469,21.5 147.5781,21.3125 147.5781,20.8906 L147.5781,19.4688 C147.5781,19.0313 147.5625,18.9063 147.4688,18.75 C147.3125,18.4844 147.0313,18.3438 146.7344,18.3438 C146.4375,18.3438 146.2344,18.4375 146.0156,18.75 L145.8438,18.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="108" x="157.5" y="27.8467">SurfaceControl</text><line style="stroke:#181818;stroke-width:0.5;" x1="129.5" x2="267.5" y1="39" y2="39"/><line style="stroke:#181818;stroke-width:0.5;" x1="129.5" x2="267.5" y1="47" y2="47"/></g><!--class SurfaceComposerClient--><g id="elem_SurfaceComposerClient"><rect fill="#F1F1F1" height="48" id="SurfaceComposerClient" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="203" x="7" y="115"/><ellipse cx="22" cy="131" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M24.3438,126.6719 C23.4063,126.2344 22.8125,126.0938 21.9375,126.0938 C19.3125,126.0938 17.3125,128.1719 17.3125,130.8906 L17.3125,132.0156 C17.3125,134.5938 19.4219,136.4844 22.3125,136.4844 C23.5313,136.4844 24.6875,136.1875 25.4375,135.6406 C26.0156,135.2344 26.3438,134.7813 26.3438,134.3906 C26.3438,133.9375 25.9531,133.5469 25.4844,133.5469 C25.2656,133.5469 25.0625,133.625 24.875,133.8125 C24.4219,134.2969 24.4219,134.2969 24.2344,134.3906 C23.8125,134.6563 23.125,134.7813 22.3594,134.7813 C20.3125,134.7813 19.0156,133.6875 19.0156,131.9844 L19.0156,130.8906 C19.0156,129.1094 20.2656,127.7969 22,127.7969 C22.5781,127.7969 23.1875,127.9531 23.6563,128.2031 C24.1406,128.4844 24.3125,128.7031 24.4063,129.1094 C24.4688,129.5156 24.5,129.6406 24.6406,129.7656 C24.7813,129.9063 25.0156,130.0156 25.2344,130.0156 C25.5,130.0156 25.7656,129.875 25.9375,129.6563 C26.0469,129.5 26.0781,129.3125 26.0781,128.8906 L26.0781,127.4688 C26.0781,127.0313 26.0625,126.9063 25.9688,126.75 C25.8125,126.4844 25.5313,126.3438 25.2344,126.3438 C24.9375,126.3438 24.7344,126.4375 24.5156,126.75 L24.3438,126.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="171" x="36" y="135.8467">SurfaceComposerClient</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="209" y1="147" y2="147"/><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="209" y1="155" y2="155"/></g><!--class Surface--><g id="elem_Surface"><rect fill="#F1F1F1" height="48" id="Surface" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="86" x="245.5" y="115"/><ellipse cx="260.5" cy="131" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M262.8438,126.6719 C261.9063,126.2344 261.3125,126.0938 260.4375,126.0938 C257.8125,126.0938 255.8125,128.1719 255.8125,130.8906 L255.8125,132.0156 C255.8125,134.5938 257.9219,136.4844 260.8125,136.4844 C262.0313,136.4844 263.1875,136.1875 263.9375,135.6406 C264.5156,135.2344 264.8438,134.7813 264.8438,134.3906 C264.8438,133.9375 264.4531,133.5469 263.9844,133.5469 C263.7656,133.5469 263.5625,133.625 263.375,133.8125 C262.9219,134.2969 262.9219,134.2969 262.7344,134.3906 C262.3125,134.6563 261.625,134.7813 260.8594,134.7813 C258.8125,134.7813 257.5156,133.6875 257.5156,131.9844 L257.5156,130.8906 C257.5156,129.1094 258.7656,127.7969 260.5,127.7969 C261.0781,127.7969 261.6875,127.9531 262.1563,128.2031 C262.6406,128.4844 262.8125,128.7031 262.9063,129.1094 C262.9688,129.5156 263,129.6406 263.1406,129.7656 C263.2813,129.9063 263.5156,130.0156 263.7344,130.0156 C264,130.0156 264.2656,129.875 264.4375,129.6563 C264.5469,129.5 264.5781,129.3125 264.5781,128.8906 L264.5781,127.4688 C264.5781,127.0313 264.5625,126.9063 264.4688,126.75 C264.3125,126.4844 264.0313,126.3438 263.7344,126.3438 C263.4375,126.3438 263.2344,126.4375 263.0156,126.75 L262.8438,126.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="54" x="274.5" y="135.8467">Surface</text><line style="stroke:#181818;stroke-width:0.5;" x1="246.5" x2="330.5" y1="147" y2="147"/><line style="stroke:#181818;stroke-width:0.5;" x1="246.5" x2="330.5" y1="155" y2="155"/></g><!--reverse link SurfaceControl to SurfaceComposerClient--><g id="link_SurfaceControl_SurfaceComposerClient"><path codeLine="1" d="M171.2045,64.1478 C156.2125,81.8062 143.362,96.9408 128.301,114.6784 " fill="none" id="SurfaceControl-backto-SurfaceComposerClient" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="178.971,55,172.0385,56.9851,171.2045,64.1478,178.137,62.1627,178.971,55" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link SurfaceControl to Surface--><g id="link_SurfaceControl_Surface"><path codeLine="2" d="M225.7955,64.1478 C240.7875,81.8062 253.638,96.9408 268.699,114.6784 " fill="none" id="SurfaceControl-backto-Surface" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="#181818" points="218.029,55,218.863,62.1627,225.7955,64.1478,224.9615,56.9851,218.029,55" style="stroke:#181818;stroke-width:1.0;"/></g><!--SRC=[2oujIajCJdNEpoifoizHqDBLLGY62UKMv1Ud5ZddPARcbN05urG80000]--></g></svg>

<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="386px" preserveAspectRatio="none" style="width:302px;height:386px;background:#FFFFFF;" version="1.1" viewBox="0 0 302 386" width="302px" zoomAndPan="magnify"><defs/><g><!--class BnInterface--><g id="elem_BnInterface"><rect codeLine="1" fill="#F1F1F1" height="48" id="BnInterface" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="231" x="17" y="115"/><ellipse cx="32" cy="131" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M34.3438,126.6719 C33.4063,126.2344 32.8125,126.0938 31.9375,126.0938 C29.3125,126.0938 27.3125,128.1719 27.3125,130.8906 L27.3125,132.0156 C27.3125,134.5938 29.4219,136.4844 32.3125,136.4844 C33.5313,136.4844 34.6875,136.1875 35.4375,135.6406 C36.0156,135.2344 36.3438,134.7813 36.3438,134.3906 C36.3438,133.9375 35.9531,133.5469 35.4844,133.5469 C35.2656,133.5469 35.0625,133.625 34.875,133.8125 C34.4219,134.2969 34.4219,134.2969 34.2344,134.3906 C33.8125,134.6563 33.125,134.7813 32.3594,134.7813 C30.3125,134.7813 29.0156,133.6875 29.0156,131.9844 L29.0156,130.8906 C29.0156,129.1094 30.2656,127.7969 32,127.7969 C32.5781,127.7969 33.1875,127.9531 33.6563,128.2031 C34.1406,128.4844 34.3125,128.7031 34.4063,129.1094 C34.4688,129.5156 34.5,129.6406 34.6406,129.7656 C34.7813,129.9063 35.0156,130.0156 35.2344,130.0156 C35.5,130.0156 35.7656,129.875 35.9375,129.6563 C36.0469,129.5 36.0781,129.3125 36.0781,128.8906 L36.0781,127.4688 C36.0781,127.0313 36.0625,126.9063 35.9688,126.75 C35.8125,126.4844 35.5313,126.3438 35.2344,126.3438 C34.9375,126.3438 34.7344,126.4375 34.5156,126.75 L34.3438,126.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85" x="46" y="135.8467">BnInterface</text><rect fill="#FFFFFF" height="15.9688" style="stroke:#181818;stroke-width:1.0;stroke-dasharray:2.0,2.0;" width="112" x="139" y="112"/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="110" x="140" y="124.1387">ISurfaceComposer</text><line style="stroke:#181818;stroke-width:0.5;" x1="18" x2="247" y1="147" y2="147"/><line style="stroke:#181818;stroke-width:0.5;" x1="18" x2="247" y1="155" y2="155"/></g><!--class BBinder--><g id="elem_BBinder"><rect fill="#F1F1F1" height="48" id="BBinder" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="89" x="7" y="7"/><ellipse cx="22" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M24.3438,18.6719 C23.4063,18.2344 22.8125,18.0938 21.9375,18.0938 C19.3125,18.0938 17.3125,20.1719 17.3125,22.8906 L17.3125,24.0156 C17.3125,26.5938 19.4219,28.4844 22.3125,28.4844 C23.5313,28.4844 24.6875,28.1875 25.4375,27.6406 C26.0156,27.2344 26.3438,26.7813 26.3438,26.3906 C26.3438,25.9375 25.9531,25.5469 25.4844,25.5469 C25.2656,25.5469 25.0625,25.625 24.875,25.8125 C24.4219,26.2969 24.4219,26.2969 24.2344,26.3906 C23.8125,26.6563 23.125,26.7813 22.3594,26.7813 C20.3125,26.7813 19.0156,25.6875 19.0156,23.9844 L19.0156,22.8906 C19.0156,21.1094 20.2656,19.7969 22,19.7969 C22.5781,19.7969 23.1875,19.9531 23.6563,20.2031 C24.1406,20.4844 24.3125,20.7031 24.4063,21.1094 C24.4688,21.5156 24.5,21.6406 24.6406,21.7656 C24.7813,21.9063 25.0156,22.0156 25.2344,22.0156 C25.5,22.0156 25.7656,21.875 25.9375,21.6563 C26.0469,21.5 26.0781,21.3125 26.0781,20.8906 L26.0781,19.4688 C26.0781,19.0313 26.0625,18.9063 25.9688,18.75 C25.8125,18.4844 25.5313,18.3438 25.2344,18.3438 C24.9375,18.3438 24.7344,18.4375 24.5156,18.75 L24.3438,18.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="57" x="36" y="27.8467">BBinder</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="95" y1="39" y2="39"/><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="95" y1="47" y2="47"/></g><!--class ISurfaceComposer--><g id="elem_ISurfaceComposer"><rect fill="#F1F1F1" height="48" id="ISurfaceComposer" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="164" x="131.5" y="7"/><ellipse cx="146.5" cy="23" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M148.8438,18.6719 C147.9063,18.2344 147.3125,18.0938 146.4375,18.0938 C143.8125,18.0938 141.8125,20.1719 141.8125,22.8906 L141.8125,24.0156 C141.8125,26.5938 143.9219,28.4844 146.8125,28.4844 C148.0313,28.4844 149.1875,28.1875 149.9375,27.6406 C150.5156,27.2344 150.8438,26.7813 150.8438,26.3906 C150.8438,25.9375 150.4531,25.5469 149.9844,25.5469 C149.7656,25.5469 149.5625,25.625 149.375,25.8125 C148.9219,26.2969 148.9219,26.2969 148.7344,26.3906 C148.3125,26.6563 147.625,26.7813 146.8594,26.7813 C144.8125,26.7813 143.5156,25.6875 143.5156,23.9844 L143.5156,22.8906 C143.5156,21.1094 144.7656,19.7969 146.5,19.7969 C147.0781,19.7969 147.6875,19.9531 148.1563,20.2031 C148.6406,20.4844 148.8125,20.7031 148.9063,21.1094 C148.9688,21.5156 149,21.6406 149.1406,21.7656 C149.2813,21.9063 149.5156,22.0156 149.7344,22.0156 C150,22.0156 150.2656,21.875 150.4375,21.6563 C150.5469,21.5 150.5781,21.3125 150.5781,20.8906 L150.5781,19.4688 C150.5781,19.0313 150.5625,18.9063 150.4688,18.75 C150.3125,18.4844 150.0313,18.3438 149.7344,18.3438 C149.4375,18.3438 149.2344,18.4375 149.0156,18.75 L148.8438,18.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="132" x="160.5" y="27.8467">ISurfaceComposer</text><line style="stroke:#181818;stroke-width:0.5;" x1="132.5" x2="294.5" y1="39" y2="39"/><line style="stroke:#181818;stroke-width:0.5;" x1="132.5" x2="294.5" y1="47" y2="47"/></g><!--class BnSurfaceComposer--><g id="elem_BnSurfaceComposer"><rect fill="#F1F1F1" height="48" id="BnSurfaceComposer" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="179" x="43" y="223"/><ellipse cx="58" cy="239" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M60.3438,234.6719 C59.4063,234.2344 58.8125,234.0938 57.9375,234.0938 C55.3125,234.0938 53.3125,236.1719 53.3125,238.8906 L53.3125,240.0156 C53.3125,242.5938 55.4219,244.4844 58.3125,244.4844 C59.5313,244.4844 60.6875,244.1875 61.4375,243.6406 C62.0156,243.2344 62.3438,242.7813 62.3438,242.3906 C62.3438,241.9375 61.9531,241.5469 61.4844,241.5469 C61.2656,241.5469 61.0625,241.625 60.875,241.8125 C60.4219,242.2969 60.4219,242.2969 60.2344,242.3906 C59.8125,242.6563 59.125,242.7813 58.3594,242.7813 C56.3125,242.7813 55.0156,241.6875 55.0156,239.9844 L55.0156,238.8906 C55.0156,237.1094 56.2656,235.7969 58,235.7969 C58.5781,235.7969 59.1875,235.9531 59.6563,236.2031 C60.1406,236.4844 60.3125,236.7031 60.4063,237.1094 C60.4688,237.5156 60.5,237.6406 60.6406,237.7656 C60.7813,237.9063 61.0156,238.0156 61.2344,238.0156 C61.5,238.0156 61.7656,237.875 61.9375,237.6563 C62.0469,237.5 62.0781,237.3125 62.0781,236.8906 L62.0781,235.4688 C62.0781,235.0313 62.0625,234.9063 61.9688,234.75 C61.8125,234.4844 61.5313,234.3438 61.2344,234.3438 C60.9375,234.3438 60.7344,234.4375 60.5156,234.75 L60.3438,234.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="147" x="72" y="243.8467">BnSurfaceComposer</text><line style="stroke:#181818;stroke-width:0.5;" x1="44" x2="221" y1="255" y2="255"/><line style="stroke:#181818;stroke-width:0.5;" x1="44" x2="221" y1="263" y2="263"/></g><!--class SurfaceFlinger--><g id="elem_SurfaceFlinger"><rect fill="#F1F1F1" height="48" id="SurfaceFlinger" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="135" x="65" y="331"/><ellipse cx="80" cy="347" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M82.3438,342.6719 C81.4063,342.2344 80.8125,342.0938 79.9375,342.0938 C77.3125,342.0938 75.3125,344.1719 75.3125,346.8906 L75.3125,348.0156 C75.3125,350.5938 77.4219,352.4844 80.3125,352.4844 C81.5313,352.4844 82.6875,352.1875 83.4375,351.6406 C84.0156,351.2344 84.3438,350.7813 84.3438,350.3906 C84.3438,349.9375 83.9531,349.5469 83.4844,349.5469 C83.2656,349.5469 83.0625,349.625 82.875,349.8125 C82.4219,350.2969 82.4219,350.2969 82.2344,350.3906 C81.8125,350.6563 81.125,350.7813 80.3594,350.7813 C78.3125,350.7813 77.0156,349.6875 77.0156,347.9844 L77.0156,346.8906 C77.0156,345.1094 78.2656,343.7969 80,343.7969 C80.5781,343.7969 81.1875,343.9531 81.6563,344.2031 C82.1406,344.4844 82.3125,344.7031 82.4063,345.1094 C82.4688,345.5156 82.5,345.6406 82.6406,345.7656 C82.7813,345.9063 83.0156,346.0156 83.2344,346.0156 C83.5,346.0156 83.7656,345.875 83.9375,345.6563 C84.0469,345.5 84.0781,345.3125 84.0781,344.8906 L84.0781,343.4688 C84.0781,343.0313 84.0625,342.9063 83.9688,342.75 C83.8125,342.4844 83.5313,342.3438 83.2344,342.3438 C82.9375,342.3438 82.7344,342.4375 82.5156,342.75 L82.3438,342.6719 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="103" x="94" y="351.8467">SurfaceFlinger</text><line style="stroke:#181818;stroke-width:0.5;" x1="66" x2="199" y1="363" y2="363"/><line style="stroke:#181818;stroke-width:0.5;" x1="66" x2="199" y1="371" y2="371"/></g><!--reverse link BBinder to BnInterface--><g id="link_BBinder_BnInterface"><path codeLine="2" d="M80.0049,69.3023 C93.4982,86.9603 101.1246,96.941 114.679,114.678 " fill="none" id="BBinder-backto-BnInterface" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="69.0758,55,75.2374,72.9453,84.7723,65.6593,69.0758,55" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link ISurfaceComposer to BnInterface--><g id="link_ISurfaceComposer_BnInterface"><path codeLine="3" d="M184.9951,69.3024 C171.5021,86.9604 163.875,96.941 150.321,114.678 " fill="none" id="ISurfaceComposer-backto-BnInterface" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="195.924,55,180.2276,65.6595,189.7626,72.9454,195.924,55" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link BnInterface to BnSurfaceComposer--><g id="link_BnInterface_BnSurfaceComposer"><path codeLine="4" d="M132.5,181 C132.5,198.658 132.5,204.941 132.5,222.678 " fill="none" id="BnInterface-backto-BnSurfaceComposer" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="132.5,163,126.5,181,138.5,181,132.5,163" style="stroke:#181818;stroke-width:1.0;"/></g><!--reverse link BnSurfaceComposer to SurfaceFlinger--><g id="link_BnSurfaceComposer_SurfaceFlinger"><path codeLine="5" d="M132.5,289 C132.5,306.6584 132.5,312.9408 132.5,330.6784 " fill="none" id="BnSurfaceComposer-backto-SurfaceFlinger" style="stroke:#181818;stroke-width:1.0;"/><polygon fill="none" points="132.5,271,126.5,289,138.5,289,132.5,271" style="stroke:#181818;stroke-width:1.0;"/></g><!--SRC=[Iyv9B2vMSChpp2j9BKfBJ4wryGmk1JESytCByejJY-oud9moyr9IYnHiQdHraPLoeIl5L874XacYwU72484eX0gwvMJcfQSM0G00]--></g></svg>

    </div>

    
    
    

    <footer class="post-footer">
          <div class="post-tags">
              <a href="/tags/Android/" rel="tag"># Android</a>
          </div>

        

          <div class="post-nav">
            <div class="post-nav-item">
                <a href="/posts/936e646.html" rel="prev" title="Android Jni开发指南">
                  <i class="fa fa-angle-left"></i> Android Jni开发指南
                </a>
            </div>
            <div class="post-nav-item">
                <a href="/posts/1b96348b.html" rel="next" title="通过自定义Service理解Binder">
                  通过自定义Service理解Binder <i class="fa fa-angle-right"></i>
                </a>
            </div>
          </div>
    </footer>
  </article>
</div>






</div>
  </main>

  <footer class="footer">
    <div class="footer-inner">

  <div class="copyright">
    &copy; 
    <span itemprop="copyrightYear">2024</span>
    <span class="with-love">
      <i class="fa fa-heart"></i>
    </span>
    <span class="author" itemprop="copyrightHolder">Jason</span>
  </div>
  <div class="powered-by">由 <a href="https://hexo.io/" rel="noopener external nofollow noreferrer" target="_blank">Hexo</a> & <a href="https://theme-next.js.org/pisces/" rel="noopener external nofollow noreferrer" target="_blank">NexT.Pisces</a> 强力驱动
  </div>

    </div>
  </footer>

  
  <div class="back-to-top" role="button" aria-label="返回顶部">
    <i class="fa fa-arrow-up fa-lg"></i>
    <span>0%</span>
  </div>

<noscript>
  <div class="noscript-warning">Theme NexT works best with JavaScript enabled</div>
</noscript>


  
  <script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js" integrity="sha256-XL2inqUJaslATFnHdJOi9GfQ60on8Wx1C2H8DYiN1xY=" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/next-theme-pjax/0.6.0/pjax.min.js" integrity="sha256-vxLn1tSKWD4dqbMRyv940UYw4sXgMtYcK6reefzZrao=" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/fancyapps-ui/5.0.24/fancybox/fancybox.umd.js" integrity="sha256-oyhjPiYRWGXaAt+ny/mTMWOnN1GBoZDUQnzzgC7FRI4=" crossorigin="anonymous"></script>
<script src="/js/comments.js"></script><script src="/js/utils.js"></script><script src="/js/motion.js"></script><script src="/js/next-boot.js"></script><script src="/js/pjax.js"></script>

  <script src="https://cdnjs.cloudflare.com/ajax/libs/hexo-generator-searchdb/1.4.1/search.js" integrity="sha256-1kfA5uHPf65M5cphT2dvymhkuyHPQp5A53EGZOnOLmc=" crossorigin="anonymous"></script>
<script src="/js/third-party/search/local-search.js"></script>


  <script class="next-config" data-name="mermaid" type="application/json">{"enable":true,"theme":{"light":"default","dark":"dark"},"js":{"url":"https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.5.0/mermaid.min.js","integrity":"sha256-K7oJiQlDulzl24ZUFOywuYme1JqBBvQzK6m8qHjt9Gk="}}</script>
  <script type="module" src="/js/zenuml-definition-074a43fa.js"></script>
  <script type="module" src="/js/mermaid-zenuml.esm.min.mjs"></script>
  <script src="/js/third-party/tags/mermaid.js"></script>


  <script src="/js/third-party/fancybox.js"></script>



  




  

  <script class="next-config" data-name="enableMath" type="application/json">true</script><script class="next-config" data-name="mathjax" type="application/json">{"enable":true,"tags":"none","js":{"url":"https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-mml-chtml.js","integrity":"sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI="}}</script>
<script src="/js/third-party/math/mathjax.js"></script>



</body>
</html>
